私の知る限り、行がどこにあるかを知らずに新しい行を探す組み込みの方法はありません。あなたの質問のほとんどは、あなたが実際に達成しようとしていることではなく、どのように達成しようとしているのかを詳しく説明しているため、目標を達成するための最良の方法を教えることはできません. したがって、次の 2 つの方法のいずれかを使用できます。
1) 実際にファイルの最後のビットすべてのデータが必要な場合 (破棄できるメタデータやその他の情報はありません):
ファイルをスキャンし、行を追跡し、一度に 1 行ずつ読み取ることができるようにインデックスを作成すると、誰かが言及しました。これは機能する可能性があり、実際に各行全体が必要な場合、または行番号のみが必要で、そこから一度に少しずつ読む予定がある場合に適しています。ただし、制約や要件の詳細を知らずに、この方法を使用して行全体を読むことはお勧めしません。これは主な理由の 1 つです。ファイルの1行?)。
代わりに、一度に処理するのに適切なサイズのバッファーを単純に割り当て、最後に到達するまでそのサイズのチャンクでファイルを処理します。より多くのデータをストリーミングできます。追加の詳細がなければ、そのマジック ナンバーがどうあるべきかはわかりませんが、処理する必要がある可能性のある情報の最大のチャンクのサイズは、最低限として適切な出発点です。
2) ファイルの最後のすべてのデータを必要としない場合 (情報の一部を破棄してもかまいません)、必要なのはその一部だけです。選択したデータのみが必要な場合は、タグ付けされていると見つけやすくなります (これが XML の目的です)。無料の XML パーサーはたくさんありますが、独自のパーサーを作成することもできます。次に、任意の行番号の代わりにタグを検索します。データが別の場所にあるという結果になるファイルへの変更は、タグ付けされている場合にファイルを見つける能力に影響しません。行番号で。