プロが教える店舗&オフィスのセキュリティ対策術

ファイルの読み込み方法についてです.

java.ioのBufferdReader.readline
java.nioのCharBuffer(ファイルサイズ分のバッファサイズを指定して一気に読み込むことを想定)
org.apache.commons.ioのFileUtils.readFileToString

の3つを比較した場合,どれが最も高速にテキストファイルを読み込めるのでしょうか?
一見,BufferdReader.readlineだと1行読み込む度にディスクIOが発生するので,大きなサイズのテキストファイルであればあるほど遅くなるような気がします.

想定しているのは,1ファイル約10000行でサイズが3MBぐらい,それを数十万~数百万ファイル逐次読み込んでいく場合です.

回答よろしくお願いします.

A 回答 (1件)

>BufferdReader.readlineだと1行読み込む度にディスクIOが発生するので



処理系(OS、コンパイラなど)によりますが、
1行毎にI/Oは発生しません。

HDDなら最低でもトラックに入っている1ブロックは入力してバッファに持っています。
大型コンピュータなら1シリンダごとですね。

ベンチマークテストはやったことないので比較はできませんm(__)m
    • good
    • 0
この回答へのお礼

> 処理系(OS、コンパイラなど)によりますが、1行毎にI/Oは発生しません。

そうなのですか!
ならBufferedReaderでも問題ないような気がしますね.

返答が遅くなってしまい申し訳ありません.
回答ありがとうございました.

お礼日時:2014/06/11 10:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!