Java 獲取文件大小

今天我們將探討在Java中獲取文件大小的不同方法。

Java 獲取文件大小

有不同的類可以用於Java獲取文件大小的程序。其中一些是:

  1. 使用File類進行Java獲取文件大小
  2. 使用FileChannel類在Java中獲取文件大小
  3. 使用Apache Commons IO FileUtils類在Java中獲取文件大小

在我們查看示例程序以獲取文件大小之前,我們有一個大小為2969575字節的示例pdf文件。

使用File類進行Java獲取文件大小

Java中的File 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";
	}
}

使用FileChannel类在Java中获取文件大小

我们可以使用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示例。

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