3

我正在尝试读取一个大文本文件(4000 多行)并将每一行输出到控制台。我正在使用以下代码

        using (var reader = new StreamReader("list1.txt"))
        {
            while (!reader.EndOfStream)
                Console.WriteLine(reader.ReadLine().Trim());
        }

        Console.Read();

这会读取这些行,但问题是读取从第 4113 行开始,而它应该从第 1 行开始,对吗?所以这意味着我只能从文本文件中得到 100 行左右。为什么会发生这种情况?

谢谢。

4

2 回答 2

2

根据用户的建议,我需要增加 Bufferheight 以适应文本行。

于 2012-04-07T00:56:12.370 回答
2

您可能会发现输出窗口只显示最后N几行,N大约是 100 行。换句话说,回滚缓冲区比您想象的要小。

您可以通过将代码更改为以下内容来检查这一点:

int numlines = 0;
using (var reader = new StreamReader("list1.txt")) {
    while (!reader.EndOfStream) {
        Console.WriteLine(reader.ReadLine().Trim());
        numlines++;
    }
}
Console.WriteLine("Wrote " + numlines + " lines.");
Console.Read();

这将输出最后处理的行数。

您可以使用以下命令更改控制台高度:

Console.BufferHeight = 30000;
于 2012-04-07T00:58:05.007 回答