0

ファイルはUTF8テキストファイルです。

各文字にはさまざまなバイト数があり、各行にはさまざまな数の文字があります。

vb.netには、バイト位置関数などの行番号の表がありますか?

また、その後の読み方は?

4

1 に答える 1

1

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

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

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

于 2012-04-04T05:15:59.830 に答える