【问题标题】:Write output of ZIO Stream to file将 ZIO Stream 的输出写入文件
【发布时间】:2020-10-29 16:54:40
【问题描述】:

我正在尝试将 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
}

【问题讨论】:

    标签: scala zio zio-streams


    【解决方案1】:

    我建议您仔细查看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
    }
    

    【讨论】:

    • 文档很清楚,但我只是错过了fromFile 方法。
    猜你喜欢
    • 2021-03-14
    • 1970-01-01
    • 2013-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-04
    相关资源
    最近更新 更多