StreamConverters.asOutputStream
Create a source that materializes into an OutputStream
.
Additional Sink and Source converters
Signature
StreamConverters.asOutputStream
StreamConverters.asOutputStream
Description
Create a source that materializes into an OutputStream
. When bytes are written to the OutputStream
they are emitted from the source.
The OutputStream
will no longer be writable when the Source
has been canceled from its downstream, and closing the OutputStream
will complete the Source
.
Reactive Streams semantics
emits when bytes are written to the OutputStream
completes when the OutputStream
is closed
Example
Here is an example of a Source
Source
that materializes into a java.io.OutputStream
, and is connected to a Sink which concatenates the incoming ByteString
ByteString
s
- Scala
-
source
val source: Source[ByteString, OutputStream] = StreamConverters.asOutputStream() val sink: Sink[ByteString, Future[ByteString]] = Sink.fold[ByteString, ByteString](ByteString.empty)(_ ++ _) val (outputStream, result): (OutputStream, Future[ByteString]) = source.toMat(sink)(Keep.both).run()
- Java
-
source
final Source<ByteString, OutputStream> source = StreamConverters.asOutputStream(); final Sink<ByteString, CompletionStage<ByteString>> sink = Sink.fold(emptyByteString(), (ByteString arg1, ByteString arg2) -> arg1.concat(arg2)); final Pair<OutputStream, CompletionStage<ByteString>> output = source.toMat(sink, Keep.both()).run(system);