比较Java中的文件?
如何在Java中比较任意类型的两个文件 我能够比较2个文本文件,但我需要比较任何类型的文件(如xls、doc、jpp…等)比较Java中的文件?,java,file,compare,Java,File,Compare,如何在Java中比较任意类型的两个文件 我能够比较2个文本文件,但我需要比较任何类型的文件(如xls、doc、jpp…等) 我只需要一个布尔结果(对于任何类型的文件)来判断文件是否相同。您可以先比较文件长度,然后逐字节比较文件内容,发现差异后立即返回false public static boolean sameContent (File f1, File f2) throws IOException { if(f1.length()!=f2.length())return false;
我只需要一个布尔结果(对于任何类型的文件)来判断文件是否相同。您可以先比较文件长度,然后逐字节比较文件内容,发现差异后立即返回false
public static boolean sameContent (File f1, File f2) throws IOException {
if(f1.length()!=f2.length())return false;
FileInputStream fis1 = new FileInputStream(f1);
FileInputStream fis2 = new FileInputStream(f2);
try {
int byte1;
while((byte1 = fis1.read())!=-1) {
int byte2 = fis2.read();
if(byte1!=byte2)return false;
}
} finally {
fis1.close();
fis2.close();
}
return true;
}
关于md5比较的一个注释(在评论中建议):
- 比较文件的md5是不可靠的,因为两个不同文件的md5可能是相同的(如果您运气不好)
- 计算md5需要读取整个文件(+散列算法),因此效率较低
md5sum
怎么样?这对你有用吗?没有检查md5sum。只检查文本文件为什么“太宽”?它简单、不含糊、清晰。我没有理由关闭它。它工作正常。谢谢。。