Scala 将ZIO流的输出写入文件

Scala 将ZIO流的输出写入文件,scala,zio,zio-streams,Scala,Zio,Zio Streams,我正在尝试将ZIO流的结果写入文件。下面的示例应用程序获取一个整数序列,将它们转换为字节,用gzip转换器压缩它们,但我不知道如何将它们写入文件 我想我需要使用ZSink.fromOutputStream,但我不确定这是否适合代码 object ZStreamExample extends zio.App { val job = (for { stream <- ZStream .fromIterable(Seq(1,2,3,4)) .map(value

我正在尝试将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
}
objectzstreamexample扩展了zio.App{
val作业=(用于{
流s“$value”)
.map(value=>value.toByte)
.transduce(gzip())
}产量流)
def运行(参数:列表[字符串])={
job.runCollect
}.exitCode
}

我建议您仔细查看和

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

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
}

文档很清楚,但我错过了
fromFile
方法。