Java 比较两个任意文件是否相同

您所在的位置:网站首页 对比两个文件内容是否一致 Java 比较两个任意文件是否相同

Java 比较两个任意文件是否相同

2024-07-16 22:32| 来源: 网络整理| 查看: 265

一、比较规则 先比较两个文件的长度,如果不一样则文件肯定不一样。否则将文件读取出来,一个字节一个字节的比较二者内容是否相同。 public class FileCompare { public static void main(String[] args) { System.out.println("请依次输入两个文件的全路径和文件名:"); System.out.println("firstFile:"); String firstFile = inputFileName(); System.out.println("secondFile:"); String secondFile = inputFileName(); System.out.println("Start to compare ..."); FileCompare fileCompare = new FileCompare(); fileCompare.compareFile(firstFile, secondFile); } private static String inputFileName() { BufferedReader buffRead = new BufferedReader(new InputStreamReader(System.in)); String fileName = null; try { fileName = buffRead.readLine(); } catch (IOException e) { e.printStackTrace(); } return fileName; } private void compareFile(String firFile, String secFile) { try { BufferedInputStream fir = new BufferedInputStream(new FileInputStream(firFile)); BufferedInputStream sec = new BufferedInputStream(new FileInputStream(secFile)); //比较文件的长度是否一样 if (fir.available() == sec.available()) { while (true) { int firRead = fir.read(); int secRead = sec.read(); if (firRead == -1 || secRead == -1) { System.out.println("two files are same!"); break; } else if (firRead != secRead) { System.out.println("Files not same!"); break; } } } else { System.out.println("two files are different!"); } fir.close(); sec.close(); return; } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } 二、File 中的 length() 与IO中 InputStream 类中的 available()

1️⃣File 中的 length() 返回 long,表示文件的大小。 2️⃣IO 中 InputStream 类中的 available() 返回 int。表示该 inputstream 在不被阻塞的情况下一次可以读取到的数据长度。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3