Ich habe den folgenden Anwendungsfall:Wie reduziere ich das Schreiben zwischen InputStreams und OutputStreams?
- Lesen von Service
InputStream
- der
InputStream
gehen und ein paar Sachen ersetzen, das Ergebnis inOutputStream
- jetzt gespeichert Ich muss auf die Arbeit mit einem
InputStream
gehen erstellt von derOutputStream
Dies ist der Code, den ich gerade jetzt:
InputStream resourceStream = service.getStream();
ByteArrayOutputStream output = new ByteArrayOutputStream();
replace(resourceStream, output, ...);
resourceStream.close();
resourceStream = new ByteArrayInputStream(out.toByteArray());
Eine Menge von Verschieben und Konvertieren von Streams, also habe ich mich gefragt, ob es eine sauberere Lösung gibt. Vielleicht einige OutputStream
, die als InputStream
verwendet werden können, oder eine OutputStream
, die eine enthält, in die der Inhalt geschrieben wird.
Ein Stream ist ein Stream. Das bedeutet, dass es sich um eine seriell zugängliche, nicht zurückkehrende Bytefolge handelt. Ein besserer Weg wäre, ein Element aus dem ursprünglichen Stream zu nehmen, es durch alle Verarbeitungsstufen zu leiten und es erst dann in einen endgültigen Ausgabestrom zu schreiben, wenn dies erforderlich ist. – RealSkeptic
Also sollte dieser OutputStream Daten von InputStream nehmen, sobald sie dort erscheinen? –
@PavloPlynko mehr wie: Daten sollten im "neuen" 'InputStream' sein, sobald es in den' OutputStream' geschrieben wird. –