0

ファイルへのランダム アクセスが必要な場合、ファイルから 1 行ずつ読み取り、解析する最速の方法は何ですか。ある位置から別の位置までシークし、これらの位置の間の行を解析したい。

4

1 に答える 1

0

NIO パッケージで提供されるファイルを使用Channelsして、ファイルを行ごとまたはランダムに読み取ることができます。
ただし、ここに注意事項があります。

BufferedReaderファイルを行ごとに読み取ることができますが、ブロックとしてではなくレコードとしてアクセスします。したがって、ランダムアクセスはありません。
FileChannelとその子の行SeekableByteChannelWritableByteChannel読み取り、ランダムな読み取りと書き込みを許可しますが、行ごとに読み取ることはできません。1行に何バイトあるか分かっていれば可能です。チャネルでは、同じデータをバイトまたは文字として読み取ることができます。それを妨げるものは何もありません。

だから、決断を下してください:)

チュートリアルは次のとおりです。http://docs.oracle.com/javase/tutorial/essential/io/fileio.html

Jacob Jenkov は、NIO と IO パッケージをよく比較しています: http://tutorials.jenkov.com/java-nio/nio-vs-io.html

于 2013-10-11T10:51:43.540 に答える