Streamreader.readLine通过一个读取行

时间:2017-03-22 06:59:20

标签: c#

我需要从数组中的txt-file中读取文本。我是这样做的

string[] rows = new string[1500000];
        StreamReader file = new StreamReader(adress);
        int count = 0;
        while (file.ReadLine() != null)
        {
            rows[count] = file.ReadLine();
            count++;
        }
        file.Close();

但目标数组只有一半行。It is the result of working this codeAnd this is source file。 StreamReader通过一行读取文件/所以我丢失了一半的数据。我怎么能避免这个?

2 个答案:

答案 0 :(得分:1)

偶数行似乎被跳过,因为循环的每次迭代都会调用ReadLine两次:

  • 第一个电话是在循环的标题中
  • 第二个电话是在正文中,在作业行

您可以通过将调用结果分配给标题内的变量来解决此问题:

string lastLine;
while ((lastLine = file.ReadLine()) != null)
{
    rows[count] = lastLine;
    count++;
}

答案 1 :(得分:0)

您可以使用 File.ReadAllLines 将所有文本读取到数组

string[] rows = File.ReadAllLines(path);