DataOutputStream()VS DataOutputStream(新しいBufferedOutputStream())

コードは Javaチュートリアルで、 DataOutputStream
クラスと DataInputStream クラスの使用例を示しました。

コードのスニペットは次のようになります。

//..
out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(dataFile)));
//..
in = new DataInputStream(new BufferedInputStream(new FileInputStream(dataFile)));
//..

新しい DataOutputStream を作成するときに、なぜ新しい
BufferedOutputStream を作成する必要があるのでしょうか?

Isn’t it redundant since this alternative works as well? :
new DataOutputStream(new
FileOutputStream(dataFile));

このページに記載されているように、DataStreamsはすでにバッファリングされたファイル出力バイトストリーム。だから、
“ダブルバッファリング”は本当に必要ですか?

私は BufferedOutputStream
BufferedInputStream を取り除いて2行のコード(出力と入力)を修正しました。
BufferedOutputStream
BufferedInputStream の目的は何ですか?

ベストアンサー

BufferedOutputStreamにFileOutputStreamをラップすると、一般にプログラムの全体的な出力がスピードアップします。これは、大量のデータを書き込む場合にのみ顕著になります。
BufferedInputStreamにInputStreamをラップする場合も同じことが起こります。バッファの使用は、正確さではなく効率にのみ影響します。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です