プロが教える店舗&オフィスのセキュリティ対策術

タイトル通りなのですが、
ファイル出力を行う際にBufferedWriterをラップしてPrintWriterのインスタンスを生成し使うと思うのですが、
二つのクラスの違いはどこの辺にあるのでしょうか?
BufferedWriterよりも優れていることがあってPrintWriterを使ってるのだと思うのですが、、、
詳しい方ご教授願います。

A 回答 (1件)

>BufferedWriterよりも優れていることがあってPrintWriterを使ってるのだと思うのですが、、、



いや、「優れている」ということじゃなくて、要するに「用途が違う」から組み合わせているだけだ。

ストリーム関係は、特定の機能に特化した複数のストリームを組み合わせて自分の望むものを用意するのが基本。BufferedWriterは、データをバッファリングするストリームで、バッファリングすることで効率よく出力できるようにしたもの。PrintWriterは文字通りprint出力するもの。したがって、バッファリングするBufferedWriterをラップしてPrintWriterを作ることで、「バッファリング機能を持ったPrintWriter」を作ることができる、というわけ。

なんでこんな具合にわけたかというと、例えば「バッファリング機能を持ったストリーム」なんてのは、ファイルに出力するのだって使うだろうし、メモリに出力したりプリンタに出力したり、いろんな「出力」に使うはずだから、全部に「普通のストリームと、バッファ内臓のストリーム」を個々に用意するのは無駄だ。バッファ機能だけに特化したクラスを用意し、それを使いたい出力系のストリームと組み合わせて使えるようにしたほうが合理的だろう、ということ。
    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このQ&Aを見た人がよく見るQ&A