我正在使用 ZIO Streams 创建一个 ByteArrayOutputStream,即:
lazy val byteArrayOutputStream = new ByteArrayOutputStream()
val sink = ZSink.fromOutputStream(byteArrayOutputStream).contramapChunks[String](_.flatMap(_.getBytes)
val data = ZStream.unwrap(callToFunction).run(sink)
这工作正常 - 现在我需要使用 akka http 将这些数据流式传输回客户端。我可以做这个:
val arr = byteArrayOutputStream.toByteArray
complete(HttpEntity(ContentTypes.`application/octet-stream`, arr)
这有效,但当然 toByteArray 将输出流带入内存,即我不流式传输数据。我遗漏了一些明显的东西 - 有没有简单的方法可以做到这一点?