JFileChooser选择多个文本文件并进行比较

时间:2016-07-25 05:26:50

标签: java compare jfilechooser multiple-files

我想使用JFileChooser选择多个文本文件,然后比较它们。 选择多个文件的代码如下所示

    JFileChooser chooser = new JFileChooser();
    chooser.setMultiSelectionEnabled(true);
    Component frame = null;
    chooser.showOpenDialog(frame);
    File[] files = chooser.getSelectedFiles();

如何使用文件句柄比较多个文件。是否可以使用此方法比较多个文本文件。 我有多个文本文件,我想检查所有文件的内容是否匹配。如果内容完全相同,我看到MATCH,如果文本文件不同,我看到FAIL以及内容的差异。 非常感谢您的帮助

1 个答案:

答案 0 :(得分:0)

使用FileUtils

示例:

for(int i=0; i<files.length-1; i++) 
    for(int j=i+1; j<files.length; j++)
        if(FileUtils.contentEquals(files[i], files[j]))
            System.out.println("file #" + i + " and file #" + j + " are identical.";
        else
            System.out.println("file #" + i + " and file #" + j + " are different.";

示例#2 - 不使用外部库 您可以使用this答案中描述的技术。

for(int i=0; i<files.length-1; i++) {
    for(int j=i+1; j<files.length; j++) {
        byte[] f1 = Files.readAllBytes(files[i]);
        byte[] f2 = Files.readAllBytes(files[j]);

        if (Arrays.equals(f1, f2))
            System.out.println("file #" + i + " and file #" + j + " are identical.";
        else
            System.out.println("file #" + i + " and file #" + j + " are different.";
    }
}

P.S。:由于您在问题中未提及,我在此假设您要比较两个文件的内容并确定它们是否相等。