Java / Scala - Reactive Streams / 枚举如何连续读取输入流直到 read() returns -1

Java / Scala - ReactiveStreams / Enumeratee How to continually read an Input Stream until read() returns -1

目前我有一个 Publisher[InputStream] 我怎么知道读它会有类似 Java8 Streams API 提供的东西:

def binStream(is: InputStream) = Stream.continually(is.read).takeWhile(_ != -1).map(_.toByte)

目前我使用 Scala 和 playframework 并想通过实验性的 akka-streams / reactivestreams 库对输出进行分块,但是我不知道,因为关于这两件事的文档很少甚至没有。有什么建议吗?

akka-streams 有 InputStreamSource 在其构造函数中采用 InputStream。

关于 Akka Streams 的文档相当多 here

如果您对 play iteratee 库感兴趣(您将 play-framework 标记放在您的问题中),您可以使用 Enumerator.fromStream 方法来制作枚举器。

还有一些关于 Play 的 Iteratees 的文档here