ウェブサイト検索

Javaでファイルサイズを取得する


今日は、Javaでファイルサイズを取得する異なる方法について見ていきます。

Javaでファイルサイズを取得する

Javaのファイルサイズプログラムで使用できる異なるクラスがあります。それらのいくつかは次の通りです;

  1. JavaでFileクラスを使用してファイルサイズを取得する
  2. JavaでFileChannelクラスを使用してファイルサイズを取得する
  3. Apache Commons IOのFileUtilsクラスを使用してJavaでファイルサイズを取得する

例としてファイルサイズを取得するプログラムを見る前に、サイズが2969575バイトのサンプルPDFファイルがあります。

JavaでFileクラスを使用してファイルサイズを取得する

Javaのlength()メソッドは、ファイルのサイズをバイト単位で返します。このファイルがディレクトリを示す場合、戻り値は未定義です。したがって、Javaでファイルサイズを取得するためにこのメソッドを呼び出す前に、ファイルが存在し、かつディレクトリでないことを確認してください。以下は、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を使用している場合は、FileUtilsのsizeOfメソッドを使用してJavaでファイルサイズを取得できます。

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ファイルサイズ取得プログラムです。

私たちのGitHubリポジトリから、さらに多くのJava IOの例を確認できます。

関連記事: