Java - 파일이 비어있는지 확인, 3가지 방법

파일이 존재하지만 안에 내용이 아무것도 없는, 비어있는 파일인지 확인하는 방법을 소개합니다.

1. File.length()로 파일이 비어있는지 확인

File.length()는 파일의 길이를 리턴하는데, 파일이 비어있을 때 0을 리턴합니다. 하지만 파일이 존재하지 않을 때도 0을 리턴하기 때문에 파일이 존재하는지 먼저 체크 후 비어있는지 확인해야 합니다.

import java.io.File;

public class Example {

    public static void main(String[] args) {

        File file = new File("/tmp/test_file.txt");

        if (file.exists() && file.length() == 0L) {
            System.out.println("File exists. But, it's empty");
        }
    }
}

Output:

File exists. But, it's empty

2. BufferedReader로 파일이 비어있는지 확인

아래와 같이 BufferedReader로 파일을 읽을 때, 파일이 비어있으면 readLine()는 null을 리턴합니다. 이걸로 파일이 비어있는지 확인할 수 있습니다.

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class Example1 {

    public static void main(String[] args) {

        File file = new File("/tmp/test_file.txt");

        try {
            BufferedReader br = new BufferedReader(new FileReader(file));
            if (br.readLine() == null) {
                System.out.println("File exists. But, it's empty");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Output:

File exists. But, it's empty

3. Apache Commons IO로 파일이 비어있는지 확인

FileUtils.readFileToString()는 파일의 내용을 문자열로 리턴하는데, 리턴된 문자열이 비어있으면 파일도 비어있다고 볼 수 있습니다.

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;

public class Example2 {

    public static void main(String[] args) {

        File file = new File("/tmp/test_file.txt");

        try {
            if (FileUtils.readFileToString(file, Charset.defaultCharset()).isEmpty()) {
                System.out.println("File exists. But, it's empty");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Output:

File exists. But, it's empty
Loading script...
codechachaCopyright ©2019 codechacha