- ベストアンサー
PrintWriterクラスのバッファ機能について
APIで、PrintWriterクラスのコンストラクタの説明を見ると、 (例えば、public PrintWriter(String fileName)など) ============ 出力はファイルに書き込まれ、バッファに格納される ============ と記載されているのですが、 これは、PrintWriterクラスにもバッファ機能があるという事でしょうか? だとすると、 バッファで出力したい時に、わざわざBufferedWriterを使う必要はないという事で良いのでしょうか?? 教えてください!
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
PrintWriter(String fileName) や PrintWriter(File file) のソースを見れば分かりますが、コンストラクタ内で BufferedWriter を生成しています。 (BufferedWriter を使って出力されるので) 結果的にバッファされるということでしょう。 それに対して PrintWriter (Writer out) などでは、バッファされるかどうかはクライアントコード次第なのでドキュメントにバッファの説明が無いのかと。
その他の回答 (1)
- osamuy
- ベストアンサー率42% (1231/2878)
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.”と書かれているので、「出力はファイルに書き込まれ、蓄えられる」ぐらいに解釈するみたいな。
補足
おお、ということは引数によってはバッファされているということですね! プログラマ側でデコレートする必要がなくなるので、だいぶコードがシンプルになりますね。