2012-04-23 50 views

Trả lời

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

Một giải pháp khôn lanh vì Java 7 là sử dụng lớp java.nio.Files. Sau đó, bạn có thể thực hiện tương tự trong một dòng. Ví dụ: 'System.out.println (Files.size (Đường dẫn.get ("file_path"))); ' –

+0

Không dành cho tệp Unicode (xem câu trả lời trong thông báo trùng lặp để biết chi tiết). –

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

thấy Most efficient way to check if a file is empty in Java on Windows

+0

@ sans481 bài đăng được liên kết khá nhiều liệt kê mọi phương pháp được biết đến với con người. Hầu hết các phương thức đó thường hoạt động và chính xác, chỉ có OP có một vấn đề rất cụ thể: một tệp thực sự ** không rỗng ** (có một BOM hai byte trong đó) được coi là rỗng. –

+0

Bây giờ tôi đã hiểu rõ ý kiến ​​của bạn. Vâng, nó thực sự là một thảm họa để đọc một dòng toàn bộ chỉ để cho biết có hay không một tập tin có sản phẩm nào. Tình hình trở nên tồi tệ hơn nếu dòng đầu tiên là rất lớn. Cảm ơn! – sgowd

0

Theo 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. 

Vì vậy new File("path to your file").length() > 0 nên làm các trick. Xin lỗi cho câu trả lời trước bd. :(

12
File file = new File(path); 

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

có thể rút ngắn xuống còn:

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

vì theo tài liệu hướng dẫn phương thức trả về

Chiều dài, tính bằng byte, của tập tin được biểu thị bởi tên đường dẫn trừu tượng này, hoặc 0L nếu tệp không tồn tại

+0

Hey @Jack, tôi nghĩ rằng nó nên được như là câu trả lời của tôi dưới đây. Đúng nếu tôi đã sai lầm. – TechSpellBound

+1

Tùy thuộc vào lý do tại sao bạn cần kiểm tra xem tệp có trống không. Bạn có thể cần phải xem xét một tập tin không tồn tại như trống rỗng hay không. Vì vậy, câu trả lời của bạn có thể đúng như tôi, chứ không phải. – Jack

+0

Nhưng tôi cảm thấy rằng ngay cả trong trường hợp đó, nếu tập tin không tồn tại, chúng tôi không phải kiểm tra xem nó có sản phẩm nào hay không. Vì vậy, đối với một tập tin không tồn tại, câu trả lời của tôi lưu một cuộc gọi đến file.length(). Cải thiện nhỏ về hiệu quả nhưng tôi cảm thấy nó hợp lý. Hãy sửa tôi nếu tôi sai. – 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; 

Tôi muốn nhấn mạnh rằng nếu chúng tôi muốn kiểm tra xem tệp có trống không, thì chúng tôi phải xem xét tệp đó tồn tại.

Các vấn đề liên quan