私は次のユースケースを持っている:サービスInputStream
InputStreamsとOutputStreamsの間の書き込みを減らすには?
- は結果が
OutputStream
- に格納され、
InputStream
を通過し、いくつかのものを置き換える今私が作成したInputStream
での作業に行く必要があります :OutputStream
からこれは私が今使用してコードです0
InputStream resourceStream = service.getStream();
ByteArrayOutputStream output = new ByteArrayOutputStream();
replace(resourceStream, output, ...);
resourceStream.close();
resourceStream = new ByteArrayInputStream(out.toByteArray());
多くのシフトと変換のストリームがあるので、よりクリーンなソリューションがあるかどうか疑問に思っていました。おそらく、InputStream
として使用することができるOutputStream
、または内容が書き込まれるInputStream
を含むOutputStream
とすることができます。
ストリームはストリームです。これは、それがシリアルアクセスで、折り返しなしのバイト列であることを意味します。より良い方法は、元のストリームから1つの項目を取り出し、処理のすべての段階を通過させ、必要に応じて最終出力ストリームに書き込むことです。 – RealSkeptic
したがって、このOutputStreamは、そこに現れたらすぐにInputStreamからデータを取得する必要がありますか? –
@PavloPlynkoもっと似ています:データは、 'OutputStream'に書き込まれるとすぐに「新しい」InputStreamになければなりません。 –