在阅读文本文件时,它只读取其中的一部分
问题描述:
我正在尝试读取大型文本文件(4000多行)并将每行输出到控制台。我使用下面的代码在阅读文本文件时,它只读取其中的一部分
using (var reader = new StreamReader("list1.txt"))
{
while (!reader.EndOfStream)
Console.WriteLine(reader.ReadLine().Trim());
}
Console.Read();
该读取线,但问题是阅读从线4113启动时,应该从一个正确的线路首发?这意味着我只能从文本文件中获得100行左右的内容。为什么会发生这种情况?
谢谢。
答
您可能会发现输出窗口只显示最后的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;
答
正如用户所建议的,我需要增加Bufferheight以使文本行成为行。
这看起来像它应该工作。你确定它不是滚动浏览控制台窗口的滚动缓冲区吗? – Robaticus 2012-04-07 00:51:14
我该如何检查? – 2012-04-07 00:53:58
啊是的,我改变了缓冲区高度以适应文本的行数。现在感谢:) – 2012-04-07 00:55:47