자바에서 File의 용량(크기)을 가져오는 방법에 대해서 알아보겠습니다.

1. File.length()를 이용한 방법

File.length()는 File의 크기를 바이트 단위로 리턴합니다. 1024로 나누면 KB로 변환할 수 있으며, 다시 1024로 나누면 MB로 변환할 수 있습니다.

import java.io.File;

public class Example {

    public static void main(String[] args) {

        File file = new File("example.txt"); // 크기를 체크할 파일 경로 입력

        if (file.exists()) {
            long fileSizeInBytes = file.length();
            double fileSizeInKB = fileSizeInBytes / 1024; // 바이트를 킬로바이트로 변환
            double fileSizeInMB = fileSizeInKB / 1024; // 킬로바이트를 메가바이트로 변환

            System.out.println("File Size in Bytes: " + fileSizeInBytes);
            System.out.println("File Size in Kilobytes: " + fileSizeInKB);
            System.out.println("File Size in Megabytes: " + fileSizeInMB);
        } else {
            System.out.println("File not found.");
        }
    }
}

Output:

File Size in Bytes: 1676264
File Size in Kilobytes: 1636.0
File Size in Megabytes: 1.59765625

2. Files.size()를 이용한 방법

Java 7 이상에서, Path와 Files를 이용하여 파일 크기를 가져올 수 있습니다.

  • Files.size(Path): Path의 용량을 바이트로 리턴
  • 바이트를 1024로 나누어 KB, MB 단위로 변환할 수 있음
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class Example {

    public static void main(String[] args) {

        Path filePath = Paths.get("example.txt"); // 크기를 체크할 파일 경로 입력

        try {
            long fileSizeInBytes = Files.size(filePath);
            double fileSizeInKB = fileSizeInBytes / 1024; // 바이트를 킬로바이트로 변환
            double fileSizeInMB = fileSizeInKB / 1024; // 킬로바이트를 메가바이트로 변환

            System.out.println("File Size in Bytes: " + fileSizeInBytes);
            System.out.println("File Size in Kilobytes: " + fileSizeInKB);
            System.out.println("File Size in Megabytes: " + fileSizeInMB);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Output:

File Size in Bytes: 1676264
File Size in Kilobytes: 1636.0
File Size in Megabytes: 1.59765625