Java/Scala - 响应式(Reactive)流/枚举如何连续读取输入流直到 read() 返回 -1

标签 java scala playframework reactive-streams

目前我有一个 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它在其构造函数中接受一个I​​nputStream。

有大量关于 Akka Streams 的文档 here

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

还有大量关于 Play 的 Iteratees 的文档 here

关于Java/Scala - 响应式(Reactive)流/枚举如何连续读取输入流直到 read() 返回 -1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31750580/

相关文章:

java - GlassPane 在 JDialog 上不可见

scala - trait extends (A => B) 是 trait 扩展函数吗?

Scalameta Decl.Def 不适用于 trait def 方法

java - 过滤crud list问题玩!框架

playframework - 方法模型中操作数堆栈上的错误类型.MyModel

database - 在 Play 框架中使用数据库

java - 无法使用 Jackson 将 Object[] 反序列化为类

java - Log4j2 JSONLayout 给出错误

java - 将消息发送到 IP 地址后进行 AES 解密

multithreading - 将 Akka Actor 固定/运行到主线程