比较两个具有相同编号的文件行

时间:2014-02-13 14:54:09

标签: c# file comparison

我有两个文件:file1.txt和file2.txt

file1.txt内容

this is line 1

this is line 1

this is line 3

file2.txt内容

this is line 1

this is line 2

this is line 4

我想要做的是将file1.txt中的第1行与file2.txt中的第1行进行比较,依此类推。如果两行不同,则只回显来自file2.txt

的行

到目前为止,这是我的代码。

int line_number = 0;
string line_file1, line_file2;

System.IO.StreamReader file2 = new System.IO.StreamReader("file2.txt");
System.IO.StreamReader file1 = new System.IO.StreamReader("file1.txt");

while (((line_file2 = file2.ReadLine()) != null) && ((line_file1 = file1.ReadLine()) != null))
{
    if (line_file2 != line_file1)
    {
        Console.WriteLine(line_file2);
    }
    line_number++;
}

file2.Close();
file1.Close();

输出:

this is line 2

this is line 4

如果您知道解决方案或更好的方法,请告诉我。

1 个答案:

答案 0 :(得分:1)

假设您要将file1的第一行与file2的第一行进行比较,依此类推。

您可以使用File.ReadAllLines()方法读取给定路径中的所有行。

试试这个:

using System.IO; //import this namespace. 


String[] strFile1 = File.ReadAllLines("file1.txt");
String[] strFile2 = File.ReadAllLines("file2.txt");

if (strFile1.Length == strFile2.Length)
{
    for (int i = 0; i < strFile1.Length; i++)
    {
        if (strFile1[i] != strFile2[i])
        {
            Console.WriteLine(strFile2[i]);
        }
    }
}