scala - 将 ZIO Stream 的输出写入文件

标签 scala zio zio-streams

我正在尝试将 ZIO Stream 的结果写入文件。下面的示例应用程序采用一系列整数,将它们转换为字节,使用 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
}

最佳答案

我建议您仔细查看docsapi .

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

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
}

关于scala - 将 ZIO Stream 的输出写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64595720/

相关文章:

scala 为抽象数据类型正确定义了一个空值

Scala:导入如何防止找到隐式值?

scala - 如何跳过在 map Scala 中附加一些条件?

scala - 与Frege一起运行的Akka比Scala竞争对手慢

scala - 为什么zio的putStrLn没有输出

scala - ZIO:为什么我得到 'An unchecked error was produced.'

scala - ZIO:如何加入 Fibers 以实现永久运行的流程