java - 比较两个文件并确定哪些行不同

标签 java string arraylist java.util.scanner

我正在开发一个项目,我需要读取两个文件,然后比较它们以找出有多少行不同。例如,如果我有两个文件: 1.猫 2.狗 3.鲨鱼 4.企鹅 和 1.猫 2.狗 3.企鹅 4. Octopus 最终结果会说:“这些文件不一样,有两个差异。” 到目前为止,这是我的编码:我已读取文件并将文件的每一行存储在列表的新部分中。现在我只是在寻找一种方法来正确比较它们,以便找到差异。我现在比较它们的方式不考虑顺序:/这是我的代码:

import java.io.*;
import java.util.*;

public class myfilereader
{
    public static void main (String[] args) throws java.io.IOException
    {


        ArrayList<String> ArrayList1 = new ArrayList<String>();
        ArrayList<String> ArrayList2 = new ArrayList<String>();
        ArrayList<String> ArrayList3 = new ArrayList<String>();
        try
        {
            Scanner File1 = new Scanner(new File("/Users/Home/Desktop/File1.txt"));
            while (File1.hasNext())
            {
                ArrayList1.add(File1.next());
            }

            Scanner File2 = new Scanner(new File("/Users/Home/Desktop/File2.txt"));
            while (File2.hasNextLine())
            {
                ArrayList2.add(File2.next());
            }
        }
        catch (FileNotFoundException ex)
        {
            ex.printStackTrace();
        }
        for (String ArrayList : ArrayList1) 
        {
            System.out.println("File 1: " + ArrayList1);
        }
        for (String ArrayList : ArrayList2) 
        {
            System.out.println("File 2: " + ArrayList2);
        }
        ArrayList1.removeAll(ArrayList2);
        System.out.println(ArrayList1);


    }
}

最佳答案

您可以使用 BufferedReader 逐行迭代这两个文件。

readLine() 方法返回每行的字符串表示形式,然后可以检查其是否相等。

可以按照您想要的任何方式存储和返回任何不等行的索引。

关于java - 比较两个文件并确定哪些行不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23228332/

相关文章:

java - Android HttpClient 异步任务

java - 对于 Jackrabbit First Hops 示例,应选择哪个 Maven 原型(prototype)代码?

javascript - 在javascript中替换的正则表达式

javascript - 使用正则表达式分割字符串值

java - PhoneStateListener onSignalStrengthsChanged ArrayList 内的平均 ASU 值

Java:ArrayList 上的 StringUtils.join 返回 NoSuchMethodError 异常

java - 如何等待任何工作线程完成?

java - 仅在 onCreate 值分配时发生

C 的 strtok() 和只读字符串文字

java - 最短字符串长度显示在主方法中,但放置在另一个方法中时不显示