Java IO(javase6)-助けてくれ、私のサンプル利用の流れや作家
質問
BufferedWriter out = new BufferedWriter( new OutputStreamWriter( new BufferedOutputStream( new FileOutputStream("out.txt") ) ) );
ちなみに上からしたまで見て理解しています:Byteを出力ストリームがファイル"out.txt".これらはバッファリングされた出力ストリームをファイル操作が速くなります。のストリームバッファを送出力ストリームライターの橋からのバイトを文字です。最後に、この作家さんを送りこみバッファリングされた作家...る他の層のバッファリング?
Hmm...
解決
あります。
と思い、この場合になにができる多くの短縮になります BufferedWriter)
BufferedWriter out = new BufferedWriter(new FileWriter("foo.out"));
希望が素敵な印刷機能
PrintWriterを表す用法かとも思いましたが新しいPrintWriter(新BufferedWriter(新FileWriter("foo.out")));
で、クリーンエネルギーであることを FileWriter
独自に作包装、そのクラスを知る方法です。
Javaにおける河川およびライター包装で組み立てることができ、自分のニーズによる積み重ねていきます。授業のないタイプのストリーム/ライターなスタック。このケースを複数のバッファます実際に二つのバッファでは、二つの異なる。これまでの一部のメモリを与性の損失が最も気づくこともできないことです(ですのでちょっとだけの架に比べその他の性的要因)
他のヒント
これはデコレータパターンの一例です。アイデアは、クラスを変更することなく、クラスに機能を追加することです。あなたの例では、てFileWriterを持っています。あなたは(それがネットワーク上にある場合は良いアイデアを)最初に書き込む前にバッファリングされるように書くものは何でもしたいです。だからてFileWriterの上にBufferedWriterの層。開発者は、BufferedWriterのを追加する必要はありませんので、他のアプリは、データをバッファリングしたくない場合があります。
私たちは、すべての開発者が必要になるか予想することはできません。あなたの代わりにしてFileWriterを修正するの ROT13 にあなたのデータは、今、あなたはクラスのコールRot13Writerを作成する必要があると言いますそれは、ライターを実装しています。 Rot13Writerは、ライターのインスタンスを取ると、次のライターにそれを渡す前にROT13を行います。