StreamConverters.asOutputStream
Create a source that materializes into an OutputStream.
Additional Sink and Source converters
Signature
StreamConverters.asOutputStreamStreamConverters.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 SourceSource that materializes into a java.io.OutputStream, and is connected to a Sink which concatenates the incoming ByteStringByteStrings
- 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);
1.0.0