0

指定されたファイルからLine#で行の内容を取得するUtilメソッドはありますか?

4

1 に答える 1

2

最も簡単な方法は、すべての行をリストに読み込み、このリストの番号で行を検索することです。使用できます

List<String> lines = FileUtils.readLines(file);

私のファイルは3GBで、Javaメモリにすべての行を保存したくありません

私はあなたが十分な記憶を持っていることを確認します。32GBを200ドル未満で購入できます。

ただし、これがオプションではないと仮定すると、各行のオフセットを別のファイルに保存した後でファイルを読み取ることで、ファイルにインデックスを付けることができます。32ビットオフセットの場合もありますが、64ビットオフセットを使用すると、よりシンプルでスケーラブルになります。

次に、各行と次の行のオフセットを検索して、各行を読み取る場所を決定できます。効率的に実装すれば、これには約10マイクロ秒かかると思います。

ところで:Javaメモリにロードした場合、約100倍高速になります。

于 2013-01-16T21:31:29.140 に答える