我正在尝试读取一个大文本文件(4000多行)并将每行输出到控制台。我使用以下代码
using (var reader = new StreamReader("list1.txt"))
{
while (!reader.EndOfStream)
Console.WriteLine(reader.ReadLine().Trim());
}
Console.Read();
这会读取这些行,但问题是当它从第一行开始正确时,从第4113行开始读取?这意味着我只从文本文件中获得100行左右的行。为什么会这样?
感谢。
答案 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;