次のようにコンストラクターを使用してストリームをチェーンできる方法があることを知っています。
BufferedReader bf=new BufferedReader(new InputStreamReader(io.openStream()));
しかし、そうする別の方法はありますか?
SetSink/SetProcess();
多分?
ありがとう。
次のようにコンストラクターを使用してストリームをチェーンできる方法があることを知っています。
BufferedReader bf=new BufferedReader(new InputStreamReader(io.openStream()));
しかし、そうする別の方法はありますか?
SetSink/SetProcess();
多分?
ありがとう。
BufferedReader クラスの javadoc を見ると、それを構築する唯一の方法は、コンストラクターでリーダーを渡すことです。
コンストラクタを使用しない理由はありますか?
ラップするものがないとラップされたストリームを使用できないため、答えは
a) いいえ、できません。
b) したくないでしょう。
理由の 1 つは、非常に長いチェーンを構築したため、新しいものを構築するのではなく、最後にシンク ストリームを変更したいだけである可能性があります。
この場合、次のような中間変数を使用できます
InputStream in = new FileInputStream(filename);
if (filename.endsWith(".gz"))
in = new GZIPInputStream(in);
in = new BufferedInputStream(in);
if (objectStream)
return new ObjectInputStream(in);
return DataInputStream(in);