1

我正在尝试将 ZIO 流的结果写入文件。以下示例应用程序采用整数序列,将它们转换为字节,使用 gzip 转换器压缩它们,但我不知道如何将它们写入文件。

我想我需要使用ZSink.fromOutputStream,但我不确定它如何适合代码。

object ZStreamExample extends zio.App {
  val job = (for {
    stream <- ZStream
      .fromIterable(Seq(1,2,3,4))
      .map(value => s"$value")
      .map(value => value.toByte)
      .transduce(gzip())
  } yield stream)

  def run(args: List[String]) = {
    job.runCollect
  }.exitCode
}
4

1 回答 1

3

我建议您仔细查看文档api

看来你只需要做这样的事情:

object ZStreamExample extends zio.App {
  val job =
    ZStream
      .fromIterable(Seq(1,2,3,4))
      .map(value => s"$value")
      .map(value => value.toByte)
      .transduce(gzip())
      .run(ZSink.fromFile(Paths.get("file.txt")))

  def run(args: List[String]) =
    job.exitCde
}
于 2020-10-29T17:27:25.577 回答