3

大きなテキスト ファイル (4000 行以上) を読み込んで、各行をコンソールに出力しようとしています。次のコードを使用しています

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

        Console.Read();

これで行が読み取られますが、問題は、行 1 から開始する必要があるときに、行 4113 から読み取りが開始されることです。つまり、テキスト ファイルから 100 行ほどしか取得できません。なぜこれが起こるのでしょうか?

ありがとう。

4

2 に答える 2

2

N出力ウィンドウに表示されるのは最後の行(約 100 行)だけであることに気付くかもしれませんN。つまり、スクロールバック バッファーは思ったよりも小さいということです。

これは、コードを次のように変更することで確認できます。

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 に答える
2

ユーザーから提案されたように、テキスト行に対応するために Bufferheight を増やす必要がありました。

于 2012-04-07T00:56:12.370 に答える