2012-04-23 23 views

Odpowiedz

14
File file = new File("file_path"); 
System.out.println(file.length()); 
+2

Trudne rozwiązanie, ponieważ Java 7 ma używać klasy java.nio.Files. Następnie możesz wykonać to samo w jednej linii. Na przykład: 'System.out.println (Files.size (Ścieżki.get ("file_path"))); ' –

+0

Nie dotyczy plików Unicode (szczegółowe informacje można znaleźć w odpowiedzi w duplikacie wiadomości). –

1
BufferedReader br = new BufferedReader(new FileReader("your_location"));  
if (br.readLine()) == null) { 
    System.out.println("No errors, and file empty"); 
} 

zobaczyć Most efficient way to check if a file is empty in Java on Windows

+0

@ sans481 połączony wpis prawie wylicza każdą znaną człowiekowi metodę. Większość z tych metod na ogół działa i jest poprawna, tylko PO miał bardzo specyficzny problem: plik, który w rzeczywistości był ** nie pusty ** (miał w nim dwubajtową specyfikację BOM) miał być uznany za pusty. –

+0

Teraz jasno zrozumiałem twoją opinię. Tak, to naprawdę katastrofa, aby przeczytać całą linię, aby stwierdzić, czy plik jest pusty. Sytuacja staje się gorsza, jeśli pierwsza linia jest ogromna. Dzięki! – sgowd

0

Według Javadocs j2re: http://docs.oracle.com/javase/7/docs/api/java/io/File.html#length()

public long length() 
    Returns the length of the file denoted by this abstract pathname. The return value is  unspecified if this pathname denotes a directory. 

Więc new File("path to your file").length() > 0 powinno załatwić sprawę. Przepraszamy za bd poprzednią odpowiedź. :(

12
File file = new File(path); 

boolean empty = !file.exists() || file.length() == 0; 

który można skrócić do:

boolean empty = file.length() == 0; 

ponieważ zgodnie z dokumentacją sposób powraca

długości, w bajtach pliku oznaczani streszczenie ścieżki lub 0L, jeśli plik nie istnieje

+0

Hej @Jack, myślę, że powinno to być raczej moją odpowiedzią poniżej. Popraw mnie, jeśli się mylę. – TechSpellBound

+1

To zależy od tego, dlaczego musisz sprawdzić, czy plik jest pusty. Możesz potrzebować albo uznać nieistniejący plik jako pusty, albo nie. Twoja odpowiedź może być tak poprawna jak moja, a nie raczej. – Jack

+0

Ale uważam, że nawet w takim przypadku, jeśli plik nie istnieje, nie musimy sprawdzać, czy jest pusty, czy nie. Tak więc dla nieistniejącego pliku moja odpowiedź zapisuje wywołanie file.length(). Drobna poprawa wydajności, ale uważam, że jest to logiczne. Proszę, popraw mnie jeśli się mylę. – TechSpellBound

0
 File file = new File("path.txt"); 
     if (file.exists()) { 
      FileReader fr = new FileReader(file); 
      if (fr.read() == -1) { 
       System.out.println("EMPTY"); 
      } else { 
       System.out.println("NOT EMPTY"); 
      } 
     } else { 
      System.out.println("DOES NOT EXISTS"); 
     } 
1
File file = new File(path); 

boolean empty = file.exists() && file.length() == 0; 

Chcę podkreślić, że jeśli chcemy, aby sprawdzić, czy plik jest pusty, to musimy wziąć pod uwagę, że istnieje.