これが重複している場合は申し訳ありませんが、各タイプのベストプラクティスについて決定的な答えを見つけることができませんでした.
BufferedReader と FileReader または BufferedInput/OutputStream と FileInput/OutputStream をいつ使用するかを定義する適切な条件を知りたいですか? 何が適切かを常に教えてくれるような公式はありますか?
常にバッファリングを使用する必要がありますか?
ありがとう
ストリームに小さなアクセスが多数ある場合は、バッファを使用します。アクセスが比較的少なく、比較的大きい場合は、unbuffered を使用します。
非バッファ I/O を使用する必要があるのは、バッファリングによる遅延と集約がアプリケーションにとって不適切な場合のみです。
「何が適切かを常に教えてくれる公式はありますか?」
存在する場合、それは既にライブラリにあり、設計上の決定を行う必要はありません。
完璧な答えはないので、設計上の決定を下さなければならず、実際に考えなければなりません。
または、両方のオプションを試して、独自の問題と独自の基準に基づいてどちらが「優れている」かを確認することもできます。
ほとんどの標準 I/O ライブラリはバッファリングされています。これは、ほとんどの I/O がバッファリングの恩恵を受けることを示唆しています。すべてではありません。たとえば、ゲームでは、ゲーム コントロールへのバッファリングなしのアクセスが必要です。
は、コンテンツを一度に 1 行ずつ読むことができるBufferedReader
便利な方法を提供することにも注意してください。readLine()
アプリケーションの速度が上がる場合はBuffered*を使用することをお勧めします。そうでない場合は、気にしないでください。つまり、現実的なデータで試して、それが役立つかどうかを確認します。