ファイルはUTF8テキストファイルです。
各文字にはさまざまなバイト数があり、各行にはさまざまな数の文字があります。
vb.netには、バイト位置関数などの行番号の表がありますか?
また、その後の読み方は?
このStreamReader
クラスは、ファイルを行ごとに読み取るための一般的な選択肢です。ファイルに読み取った内容の履歴は保持されないため、最後の行がどこで終了したか、次の行がどこで終了するかはわかりません。( 経由で) 要求さReadLine
れると、改行文字列またはファイルの終わりに到達するまで文字を単純に処理します。
StreamReader の実際の実装はわかりませんが、Encoding
クラスを使用してマルチバイト エンコーディングを処理し、読み取りパフォーマンスを向上させるために事前読み取りデータの小さなバッファーのみを保持していると思います (チャンクの読み取りは、単なる読み取りよりも優れています)。現在必要な 10 バイト)。現在の行の文字などの他のバッファは、ReadLine
それらを必要とするような関数のローカルになります。
ランダムにシークする必要がある場合は、BaseStream
プロパティを使用して行開始のテーブルを生成し、そのストリームを目的の行の開始までシークする必要があります。ReadLine
そこから、通常どおり使用できるはずです。