- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Java:ファイルの読み込みはどれが速いのか?)
Javaファイルの読み込み方法の比較
このQ&Aのポイント
- Javaのファイルの読み込み方法には、java.ioのBufferedReader.readline、java.nioのCharBuffer、org.apache.commons.ioのFileUtils.readFileToStringの3つがあります。これらの方法を比較すると、どれが最も高速にテキストファイルを読み込めるのか気になります。
- 一見、BufferedReader.readlineは1行ごとにディスクIOが発生するため、大きなサイズのテキストファイルであれば遅くなる可能性があります。しかし、ファイルサイズが3MB程度であれば、一度に全て読み込むCharBufferやFileUtils.readFileToStringでも十分に高速に読み込むことができます。
- 想定しているのは1ファイル約10000行、サイズが3MB程度のテキストファイルを数十万~数百万ファイル逐次読み込む場合です。このような場合、CharBufferやFileUtils.readFileToStringの方が効率的であり、高速に読み込むことができます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>BufferdReader.readlineだと1行読み込む度にディスクIOが発生するので 処理系(OS、コンパイラなど)によりますが、 1行毎にI/Oは発生しません。 HDDなら最低でもトラックに入っている1ブロックは入力してバッファに持っています。 大型コンピュータなら1シリンダごとですね。 ベンチマークテストはやったことないので比較はできませんm(__)m
お礼
> 処理系(OS、コンパイラなど)によりますが、1行毎にI/Oは発生しません。 そうなのですか! ならBufferedReaderでも問題ないような気がしますね. 返答が遅くなってしまい申し訳ありません. 回答ありがとうございました.