1

RandomAcessFile を使用して、かなり大きなファイル (5 GB) のコンテンツを検索しようとしています。二分探索を使用してファイルを 2 つの部分に分割しましたが、このような戦略は、randomaccessfile ポインターが最初から指している行を読み取ることができる場合にのみ機能します。ポインターがファイルの先頭を指すという保証はないので、現在の行の先頭にポインターを配置する方法が必要です。Java ドキュメントを参照しましたが、ファイルの先頭へのポインターをシークするメソッドが見つかりませんでした。readLine() 関数がありますが、それは次の行を読み取ります。

4

3 に答える 3

3

RandomAccessFile は文字ストリーム リーダー/ライターではなくバイト ストリーム リーダー/ライターであるため、「行」の概念はありません。RandomAccessFile を使用する場合、唯一のオプションは、改行文字が見つかるまで逆方向に反復することです。

于 2013-05-29T20:09:34.530 に答える
0

現在の行の先頭にファイル ポインターを取得する関数を使用してプログラムを作成しました。ここでコードを見つけることができます。 https://github.com/VihaanVerma89/RandomSolutions/blob/master/interviewStreet/Search/src/logFind.java

于 2013-06-26T15:45:35.710 に答える