在 Java 中,比较 File 文件的大小通常不是比较 File 对象本身,而是比较文件所占用的字节数。常用方式如下:
File.length()(最常用)import java.io.File;
File f1 = new File("a.txt");
File f2 = new File("b.txt");
long size1 = f1.length();
long size2 = f2.length();
if (size1 > size2) {
System.out.println("a.txt 更大");
} else if (size1 < size2) {
System.out.println("b.txt 更大");
} else {
System.out.println("两个文件大小相同");
}
✅ 说明:
length() 返回文件大小(单位:字节)0if (!f1.exists() || !f2.exists()) {
System.out.println("文件不存在");
return;
}
public static int compareFileSize(File f1, File f2) {
return Long.compare(f1.length(), f2.length());
}
使用:
int result = compareFileSize(f1, f2);
> 0:f1 更大< 0:f2 更大= 0:一样大File.length() 对目录无效,需要自己算:
public static long getDirSize(File dir) {
long size = 0;
File[] files = dir.listFiles();
if (files != null) {
for (File f : files) {
size += f.isDirectory() ? getDirSize(f) : f.length();
}
}
return size;
}
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
Path p1 = Paths.get("a.txt");
long size = Files.size(p1);
| 场景 | 推荐方式 |
|---|---|
| 普通文件 | File.length() |
| 需要异常处理 | Files.size(Path) |
| 目录 | 递归计算 |
如果你是想按文件大小排序、找最大文件或比较两个路径是否指向同一文件,也可以继续问我。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。