17

重複の可能性:
WindowsのJavaでファイルが空かどうかを確認する最も効率的な方法

Java 7でファイルが空かどうかを確認するにはどうすればよいですか?
ObjectInputStreamのavailable()メソッドを使用して試しましたが、ファイルにデータが含まれている場合でも、常にゼロが返されます。

4

6 に答える 6

34
File file = new File("file_path");
System.out.println(file.length());
于 2012-04-23T13:26:32.137 に答える
18
File file = new File(path);

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

これは次のように短縮できます。

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

ドキュメントによると、メソッドは

この抽象パス名で示されるファイルの長さ(バイト単位)。ファイルが存在しない場合は0L

于 2012-04-23T13:23:55.377 に答える
4
File file = new File(path);

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

ファイルが空かどうかを確認したい場合は、ファイルが存在することを考慮する必要があることを強調したいと思います。

于 2012-04-23T17:01:09.120 に答える
2
BufferedReader br = new BufferedReader(new FileReader("your_location"));     
if (br.readLine()) == null ) {
    System.out.println("No errors, and file empty");
}

Windows上のJavaでファイルが空かどうかを確認する最も効率的な方法を参照してください

于 2012-04-23T13:23:15.750 に答える
1

J2RE javadocsによると: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.

だからnew File("path to your file").length() > 0、トリックを行う必要があります。bdの前の答えでごめんなさい。:(

于 2012-04-23T13:23:39.937 に答える
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");
        }
于 2012-04-23T13:28:56.820 に答える