Javaでファイルのサイズを取得する
今日は、Javaでファイルサイズを取得するさまざまな方法を調べます。
Javaでファイルサイズを取得する
Javaのファイルサイズプログラムに使用できるさまざまなクラスがあります。その中には、以下のものがあります。
-
- JavaのFileクラスを使用してファイルサイズを取得する
-
- FileChannelクラスを使用してJavaでファイルサイズを取得する
- Apache Commons IO FileUtilsクラスを使用してJavaでファイルサイズを取得する
Fileクラスを使用して、Javaでファイルサイズを取得する。
JavaのFileのlength()メソッドは、ファイルのサイズをバイト単位で返します。このメソッドの戻り値は、このファイルがディレクトリを示す場合には未指定です。したがって、Javaでファイルサイズを取得するためにこのメソッドを呼び出す前に、ファイルが存在し、ディレクトリではないことを確認してください。以下は、Fileクラスを使用した単純なJavaのファイルサイズ取得の例です。
package com.scdev.getfilesize;
import java.io.File;
public class JavaGetFileSize {
static final String FILE_NAME = "/Users/scdev/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.scdev.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/scdev/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.scdev.getfilesize;
import java.io.File;
import org.apache.commons.io.FileUtils;
public class JavaGetFileSizeUsingApacheCommonsIO {
static final String FILE_NAME = "/Users/scdev/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の例をチェックアウトすることができます。