在阅读文本文件时,它只读取其中的一部分

时间:2012-04-07 00:44:52

标签: c# streamreader

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

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

        Console.Read();

这会读取这些行,但问题是当它从第一行开始正确时,从第4113行开始读取?这意味着我只从文本文件中获得100行左右的行。为什么会这样?

感谢。

2 个答案:

答案 0 :(得分:2)

根据用户的建议,我需要增加缓冲区高度以适应文本行。

答案 1 :(得分: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;