pekko/akka-docs/src/main/paradox/stream/operators/Source/fromJavaStream.md

40 lines
1.1 KiB
Markdown
Raw Normal View History

# fromJavaStream
Stream the values from a Java 8 `Stream`, requesting the next value when there is demand.
@ref[Source operators](../index.md#source-operators)
@@@div { .group-scala }
## Signature
@@signature [Source.scala](/akka-stream/src/main/scala/akka/stream/scaladsl/Source.scala) { #fromJavaStream }
@@@
## Description
Stream the values from a Java 8 `Stream`, requesting the next value when there is demand. The iterator will be created anew
for each materialization, which is the reason the @scala[`method`] @java[`factory`] takes a @scala[`function`] @java[`Creator`] rather than an `Stream` directly.
You can use [[Source.async]] to create asynchronous boundaries between synchronous java stream and the rest of flow.
## Example
Scala
: @@snip [From.scala](/akka-docs/src/test/scala/docs/stream/operators/source/From.scala) { #from-javaStream }
Java
: @@snip [From.java](/akka-docs/src/test/java/jdocs/stream/operators/source/From.java) { #from-javaStream }
## Reactive Streams semantics
@@@div { .callout }
**emits** the next value returned from the iterator
**completes** when the iterator reaches its end
@@@