どんな数のバイト数を読み取TextReader.ReadLine()?
-
23-10-2019 - |
質問
私の解析は非常に大きなファイルに記録して、簡単に線路の長さの変わる)といトラックのバイト数を読んでファイルにその回復の可能性がある場合。
私は次のように書いている:
using (TextReader myTextReader = CreateTextReader())
{
string record = myTextReader.ReadLine();
bytesRead += record.Length;
ParseRecord(record);
}
こうしたなか ReadLine()
帯をせCR/LF文字にしたものである。また、ラインが中止される可能性がありいずれかCR、LF、または改行文字をすることができないだけで追加1 bytesRead
.
やのように実際の線の長さ、やりたい自分で ReadLine()
方法は粒状 Read()
が実現されるのでしょう。
解決
の現在位置の基本となるストリームならStreamReaderのままのバッファから読み取られたデータストリームです。
基本的にできないことを書かずに自分のStreamReader.もんする必要がありますか?
私は単にカウントの行数を読み込みます。
もちろん、この位置に特定のラインが必要となりま読みく$N$行目にするだけではなくてをオフセットで何が悪い。いと判断し性能することさえ許可しない?
他のヒント
をTextReaderを読み込み文字列は、文字を[によってエンコーディング]いバイトまでとなります。
いかがで保存回線数を読み、次の多くのラインが回復しているか?)ではないかと思いつけない加工れるにもかかわらず回避されてしまうから、ストリームです。
そういえばご利用できます StreamReader
としているかどうかを返し位置の基本となるストリームとしております。
using (StreamReader myTextReader = CreateStreamReader())
{
stringRecord = myTextReader.ReadLine();
bytesRead += myTextReader.BaseStream.Position;
ParseRecord(record);
// ...
}
所属していません StackOverflow