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

本文关键字:读取 一部分 取文本 文件 | 更新日期: 2023-09-27 18:30:23

我正在尝试读取一个大文本文件(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;

正如用户建议的那样,我需要增加缓冲区高度以适应文本行。