1.需要引入的Jar包
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.11</version>
</dependency>
private static boolean chechFile(File file1){
InputStream fileStream1 = null;
InputStream fileStream2 = null;
try {
Iterator<File> it = fileList.iterator();
while (it.hasNext()) {
File file2 = it.next();
if (file1.length() != file2.length()) {
return false;
}
if(file1.getName().equals(file2.getName())){
return true;
}
fileStream1 = new FileInputStream(file1);
fileStream2 = new FileInputStream(file2);
byte[] fileByteArray = new byte[fileStream1.available()];
return isSameFiles(fileByteArray, new byte[fileStream2.available()]);
}
return false;
}catch (Exception e){
e.printStackTrace();
log.info("比较文件出错{}",e);
return false;
} finally {
try {
if (fileStream1 != null){
fileStream1.close();
}
if (fileStream2 != null){
fileStream2.close();
}
}catch (Exception e){
e.printStackTrace();
log.info("关闭异常{}",e);
}
}
}
private static boolean isSameFiles(byte[] fileByte1, byte[] fileByte2) {
String firstFileMd5 = DigestUtils.md5Hex(fileByte1);
String secondFileMd5 = DigestUtils.md5Hex(fileByte2);
if (firstFileMd5.equals(secondFileMd5)) {
System.out.println("---- equals ------ md5 " + firstFileMd5);
return true;
} else {
System.out.println(firstFileMd5 + " is firstFileMd5 ++ unequal ++ secondFileMd5 = " + secondFileMd5);
return false;
}
}