Java文件比较
/**
- @Description: 比较文件内容
- @author: hzh
- @date: 2021年9月8日下午8:56:11
*/
public class FileCompareMain {
public static void main(String[] args) throws IOException {
boolean fileFlag = false;
boolean foldFlag = false;
String filePath1 = "C:\\Users\\小太阳\\Desktop\\java\\20210302~\\test\\path1\\filePath1.txt";
String filePath2 = "C:\\Users\\小太阳\\Desktop\\java\\20210302~\\test\\path2\\filePath1.txt";
String foldPath1 = "C:\\Users\\小太阳\\Desktop\\java\\20210302~\\test\\path1";
String foldPath2 = "C:\\Users\\小太阳\\Desktop\\java\\20210302~\\test\\path2";
fileFlag = fileCompare(filePath1,filePath2);
if (fileFlag) {
System.out.println("文件一致");
}else {
System.out.println("文件不一致");
}
foldFlag=allFileCompare(foldPath1,foldPath2);
if (foldFlag) {
System.out.println("文件夹内文件一致");
}else {
System.out.println("文件夹内文件不一致");
}
}
/**@Description: 比较两个文件夹内所有同名文件
* @author: hzh
* @param foldPath1
* @param foldPath2
* @return
* @throws IOException
*/
private static boolean allFileCompare(String foldPath1, String foldPath2) throws IOException {
File fold1 = new File(foldPath1);
File fold2 = new File(foldPath2);
//获取该目录下的所有文件
File[] fileArr1 = fold1.listFiles();
File[] fileArr2 = fold2.listFiles();
for(File file1:fileArr1) {
for(File file2:fileArr2) {
//文件夹内文件名名称相同
if (file1.getName().equals(file2.getName())) {
return fileCompare(foldPath1 + "\\" + file1.getName(), foldPath2+ "\\" + file2.getName());
}else {
return fileCompare(foldPath1 + "\\" + file1.getName(), foldPath2+ "\\" + file2.getName());
}
}
}
return false;
}
/**@Description: 比较文件
* @author: hzh
* @param filePath1
* @param filePath2
* @return
* @throws IOException
*/
private static boolean fileCompare(String filePath1, String filePath2) throws IOException {
return Arrays.equals(Files.readAllBytes(Paths.get(filePath1)), Files.readAllBytes(Paths.get(filePath2)));
}