2012-04-04 3 views

答えて

1

StreamReaderクラスは、ファイルの行単位の読み取りの一般的な選択です。ファイル内の読み込み履歴を保持していないため、最後の行がどこで終了したのか、次の行がどこにあるのかはわかりません。要求されたとき(ReadLine経由)、新しい行の文字列またはファイルの終わりに達するまで文字を処理するだけです。

私はStreamReaderの実際の実装についてはわかりませんが、Encodingクラスを使用してマルチバイトエンコーディングを処理し、読み込みパフォーマンスを向上させるための潜在的な事前読み込みデータの小さなバッファのみを保持していると仮定します今必要な10バイトよりも優れています)。現在の行の文字などの他のバッファは、それらを必要とするReadLineのような関数へのローカルになります。

ランダムに検索する必要がある場合は、BaseStreamプロパティを使用して、自分自身の行開始のテーブルを生成し、そのストリームを目的の行の先頭に移動する必要があります。そこから、通常どおりReadLineを使用できるはずです。

+0

私は、streamreaderにオフセットプロパティがないことに気付きました。それはベースストリームがキックインする場所ですか?そう、私は –

+0

+1と思われる行開始のテーブルが必要です。それはものです。わかった。 –

関連する問題