Java 파일 크기 가져오기

오늘은 Java에서 파일 크기를 가져오는 다양한 방법을 살펴보겠습니다.

Java 파일 크기 가져오기

이를 위해 사용할 수 있는 다양한 클래스가 있습니다. 일부는 다음과 같습니다.

  1. File 클래스를 사용한 Java 파일 크기 가져오기
  2. FileChannel 클래스를 사용한 Java 파일 크기 가져오기
  3. Apache Commons IO FileUtils 클래스를 사용한 Java 파일 크기 가져오기

파일 크기를 가져오기 위한 예제 프로그램을 살펴보기 전에 크기가 2969575 바이트인 샘플 PDF 파일이 있습니다.

File 클래스를 사용한 Java 파일 크기 가져오기

Java의 File length() 메서드는 파일 크기를 바이트 단위로 반환합니다. 이 메서드를 호출하기 전에 파일이 존재하고 디렉터리가 아닌지 확인해야 합니다. 아래는 File 클래스를 사용한 간단한 Java 파일 크기 가져오기 예제 프로그램입니다.

package com.journaldev.getfilesize;

import java.io.File;

public class JavaGetFileSize {

	static final String FILE_NAME = "/Users/pankaj/Downloads/file.pdf";

	public static void main(String[] args) {
		File file = new File(FILE_NAME);
		if (!file.exists() || !file.isFile()) return;

		System.out.println(getFileSizeBytes(file));
		System.out.println(getFileSizeKiloBytes(file));
		System.out.println(getFileSizeMegaBytes(file));
	}

	private static String getFileSizeMegaBytes(File file) {
		return (double) file.length() / (1024 * 1024) + " mb";
	}
	
	private static String getFileSizeKiloBytes(File file) {
		return (double) file.length() / 1024 + "  kb";
	}

	private static String getFileSizeBytes(File file) {
		return file.length() + " bytes";
	}
}

Java의 FileChannel 클래스를 사용하여 파일 크기 가져오기

파일 크기를 바이트 단위로 가져 오려면 FileChannel size() 메소드를 사용할 수 있습니다.

package com.journaldev.getfilesize;

import java.io.IOException;
import java.nio.channels.FileChannel;
import java.nio.file.Path;
import java.nio.file.Paths;

public class JavaGetFileSizeUsingFileChannel {

	static final String FILE_NAME = "/Users/pankaj/Downloads/file.pdf";

	public static void main(String[] args) {

		Path filePath = Paths.get(FILE_NAME);
		FileChannel fileChannel;
		try {
			fileChannel = FileChannel.open(filePath);
			long fileSize = fileChannel.size();
			System.out.println(fileSize + " bytes");
			fileChannel.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

Apache Commons IO의 FileUtils 클래스를 사용하여 Java 파일 크기 가져 오기

이미 프로젝트에서 Apache Commons IO를 사용 중이라면 Java에서 파일 크기를 가져 오는 FileUtils sizeOf 메소드를 사용할 수 있습니다.

package com.journaldev.getfilesize;

import java.io.File;

import org.apache.commons.io.FileUtils;

public class JavaGetFileSizeUsingApacheCommonsIO {

	static final String FILE_NAME = "/Users/pankaj/Downloads/file.pdf";

	public static void main(String[] args) {
		File file = new File(FILE_NAME);

		long fileSize = FileUtils.sizeOf(file);

		System.out.println(fileSize + " bytes");
	}
}

이것으로 모두입니다. Java 파일 크기 가져 오기 프로그램을 사용할 수 있습니다.

더 많은 Java IO 예제는 GitHub 저장소에서 확인할 수 있습니다.

Source:
https://www.digitalocean.com/community/tutorials/java-get-file-size