####使用流来判断文件内容是否相同import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;public class TestFileNotModi{public static void main(String[] args) {//文件名要用绝对路径//相对路径也可以,但是容易弄错String fileName1 = "D:/jin/javaproject/bin/testfile/jin.txt";//写你需要判断的第一个文件的文件名String fileName2 = "D:/jin/javaproject/bin/testfile/jin1.txt";//写你需要判断的第二个文件的文件名FileInputStream fis1 = null;FileInputStream fis2 = null;try {fis1 = new FileInputStream(fileName1);fis2 = new FileInputStream(fileName2);int len1 = fis1.available();int len2 = fis2.available();if (len1 == len2) {//长度相同,则比较具体内容//建立两个字节缓冲区byte[] data1 = new byte[len1];byte[] data2 = new byte[len2];//分别将两个文件的内容读入缓冲区fis1.read(data1);fis2.read(data2);//依次比较文件中的每一个字节for (int i=0; i<len1; i++) {//只要有一个字节不同,两个文件就不一样if (data1[i] != data2[i]) {System.out.println("文件内容不一样");return;}}System.out.println("两个文件完全相同");}else {//长度不一样,文件肯定不同System.out.println("两个文件长度不同");}} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} finally {//关闭文件流,防止内存泄漏if (fis1 != null) {try {fis1.close();} catch (IOException e) {//忽略e.printStackTrace();}}if (fis2 != null) {try {fis2.close();} catch (IOException e) {//忽略e.printStackTrace();}}}}
}
相关资源:Java 面经手册·小傅哥(公众号:bugstack虫洞栈).pdf