Java如何获取文件大小呢?
实现思路:
下文讲述Java中获取文件大小的方法分享:
- 使用
File
类获取文件大小; - 使用
FileChannel
类获取文件大小; - 使用Apache Commons IO FileUtils类获取文件大小;
一. 使用File类获取文件大小
Java File.length()
方法:可返回一个文件大小,但其返回单位为字节(使用之前需判断文件是否存在)
import java.io.File;
public class testClass {
static final String FILE_NAME = "D:/java265.zip";
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(getFileSizeKBytes(file));
System.out.println(getFileSizeMBytes(file));
}
private static String getFileSizeMBytes(File file) {
return (double) file.length() / (1024 * 1024) + " mb";
}
private static String getFileSizeKBytes(File file) {
return (double) file.length() / 1024 + " kb";
}
private static String getFileSizeBytes(File file) {
return file.length() + " bytes";
}
}
2. 使用FileChannel类获取文件大小
可以使用FileChannel.size()
方法来获取文件大小(以字节为单位)。
import java.io.IOException;
import java.nio.channels.FileChannel;
import java.nio.file.Path;
import java.nio.file.Paths;
public class testClass {
static final String FILE_NAME = "D:/java265.zip";
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();
}
}
}
3. 使用Apache Commons IO FileUtils类获取文件大小
此方法需引入Apache Commons IO,然后使用FileUtils.sizeOf()
方法获取文件大小。
import java.io.File;
import org.apache.commons.io.FileUtils;
public class testClass{
static final String FILE_NAME = "D:/java265.zip";
public static void main(String[] args) {
File file = new File(FILE_NAME);
long fileSize = FileUtils.sizeOf(file);
System.out.println(fileSize + " bytes");
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。