(非常に大きな)ファイルを開いて、後でいつでも任意のポイントからデータを読み取れるようにしたいのですが、全体をメモリに保持する必要はありません。
これは可能ですか?
ファイルへのハンドルを開きたいのですが、このファイルへの読み取り/書き込みは他になく、後でディスクでファイルを再度検索することなく、任意のオフセットと長さからデータを取得できます。
私は何らかの種類があるだろうと想定していた
1, open handle to file
2, create reader
3, skip reader to X
4, read for Y
5, reset reader to 0
6, return to step 3
最初は私が求めているもののように見えましたが、ドキュメントは、マークした場所からスキップした場所までのコンテンツがメモリに保持されることをBufferedReader.mark
示唆していますか?mark, skip, read, reset
ドキュメントから、
マークを保持しながら読み取ることができる文字数の制限。この制限またはそれを超える文字を読み取った後にストリームをリセットしようとすると、失敗する場合があります。入力バッファーのサイズよりも大きな制限値を指定すると、制限以上のサイズの新しいバッファーが割り当てられます。したがって、大きな値は注意して使用する必要があります。
「読み取り」と表示されているので、おそらくスキップすると、この制限にはカウントされません (これは理にかなっています)。そうなってほしくない…
これについてもっと良い方法はありますか?