• ベストアンサー

PrintWriterクラスのバッファ機能について

APIで、PrintWriterクラスのコンストラクタの説明を見ると、 (例えば、public PrintWriter(String  fileName)など) ============ 出力はファイルに書き込まれ、バッファに格納される ============ と記載されているのですが、 これは、PrintWriterクラスにもバッファ機能があるという事でしょうか? だとすると、 バッファで出力したい時に、わざわざBufferedWriterを使う必要はないという事で良いのでしょうか?? 教えてください!

質問者が選んだベストアンサー

  • ベストアンサー
  • root139
  • ベストアンサー率60% (488/809)
回答No.2

PrintWriter(String fileName) や PrintWriter(File file) のソースを見れば分かりますが、コンストラクタ内で BufferedWriter を生成しています。 (BufferedWriter を使って出力されるので) 結果的にバッファされるということでしょう。 それに対して PrintWriter (Writer out) などでは、バッファされるかどうかはクライアントコード次第なのでドキュメントにバッファの説明が無いのかと。

hakase-chan
質問者

補足

おお、ということは引数によってはバッファされているということですね! プログラマ側でデコレートする必要がなくなるので、だいぶコードがシンプルになりますね。

その他の回答 (1)

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

http://java.sun.com/javase/ja/6/docs/ja/api/java/io/PrintWriter.html http://java.sun.com/javase/ja/6/docs/ja/api/java/io/BufferedWriter.html ――を読んでみた感じだと、「出力はファイルに書き込まれ、バッファに格納される」っていうのは、「出力はファイルに書き込まれる」という意味しかなさそう。 http://download.oracle.com/javase/6/docs/api/java/io/PrintWriter.html ――ですと、“The output will be written to the file and is buffered.”と書かれているので、「出力はファイルに書き込まれ、蓄えられる」ぐらいに解釈するみたいな。

関連するQ&A