当前位置: 首页 > 面试题库 >

如何比较两个文本文件的内容并返回“相同内容”或“不同内容”?

况明贤
2023-03-14
问题内容

我的Java应用程序需要具有比较文件系统中两个不同文件并确定它们的二进制内容是否相同的能力。

这是我当前的代码:

package utils;
import java.io.*;

class compare { 
    public static void main(String args[]) throws IOException {
        FileInputStream file1 = new InputStream(args[0]);
        FileInputStream file2 = new InputStream(args[1]);

        try {
            if(args.length != 2)
                throw (new RuntimeException("Usage : java compare <filetoread> <filetoread>"));
            while (true) {
                int a = file1.read();
                int b = file2.read();
                if (a==-1) { 
                    System.out.println("Both the files have same content"); 
                }
                else{
                    System.out.println("Contents are different");
                }
            }
        }
        catch (Exception e) {
            System.out.println("Error: " + e);
        }
    }
}

任何有关如何正确进行比较功能的提示或建议,将不胜感激。


问题答案:

最简单的方法是将内容读取为两个字符串,例如

  FileInputStream fin =  new FileInputStream(args[i]);
  BufferedReader myInput = new BufferedReader(new InputStreamReader(fin));
  StringBuilder sb = new StringBuilder();
  while ((thisLine = myInput.readLine()) != null) {  
             sb.append(thisLine);
  }

,然后.equals()对这些执行。您是否需要更复杂的差分功能?



 类似资料:
  • 但是,zip文件将具有不同的校验和,即使文件的内容不变。在使用Git提交文件时,这是一个问题。 如何确保压缩后的文件每次都保持不变,除非内容发生了更改?

  • 问题内容: 我有2个excel文件,我想比较内容并突出显示差异。例如: 第一个档案… 有没有第三方图书馆可以做到这一点?或最好的方法是什么? 问题答案: 就像DaDaDom所说的那样,Apache POI是您想要的。您可以从此页面下载它。请注意,POI项目不是完全独立的,您可能需要下载一些额外的库。请遵循Apache POI网站上的说明。这是您的用法: 如果这是一个新文件,则可能需要先创建图纸才能

  • 本文向大家介绍JavaScript比较两个数组的内容是否相同(推荐),包括了JavaScript比较两个数组的内容是否相同(推荐)的使用技巧和注意事项,需要的朋友参考一下 今天意外地发现JavaScript是不能用==或===操作符直接比较两个数组是否相等的。 以上两句代码都会弹出false。 因为JavaScript里面Array是对象,==或===操作符只能比较两个对象是否是同一个实例,也就是

  • 问题内容: 我正在尝试学习nodejs,我认为做到这一点的最佳方法是尝试做一些事情而不使用express或任何其他非核心模块。我一直试图让一些文本和图像同时传递。我正在尝试的代码是: 因此,理想的情况是: 但是,什么也没出现。 我写完“ hi there”之后尝试放置一个response.end(),以显示文本,之后我尝试交换文本和图片(包括标题)的位置,以显示图片,但是我不知道了解如何使两者同时

  • 问题内容: 如果要查找两个目录树之间的差异,通常只执行: 这将准确输出相应文件之间的区别。我只想获取内容不同的相应文件的列表。我以为这只是将命令行选项传递给的问题,但是我在手册页上找不到任何内容。 有什么建议么? 问题答案: 您说过Linux,所以您很幸运(至少它应该可用,不确定何时添加): 应该做你所需要的。 如果您还想查看两个目录中可能不存在的文件的差异,请执行以下操作: