Akka流:文件接收器不写入流元素

时间:2018-07-25 15:30:44

标签: scala akka akka-stream

我正在编码一个小的Akka Streams示例,我想在其中将List的元素写入本地TXT文件

implicit val ec = context.dispatcher
implicit val actorSystem = context.system
implicit val materializer = ActorMaterializer()

val source = Source(List("a", "b", "c"))
  .map(char => ByteString(s"${char} \n"))

val runnableGraph = source.toMat(FileIO.toPath(Paths.get("~/Downloads/results.txt")))(Keep.right)

runnableGraph.run()

该文件已经由我在代码中设置的位置创建。 我不会终止actor系统,因此绝对有足够的时间将所有List元素写入文件。

但是不幸的是,什么都没有发生

1 个答案:

答案 0 :(得分:2)

使用扩展到主目录的路径而不是波浪号(~)。例如:

val runnableGraph =
  source.toMat(
    FileIO.toPath(Paths.get("/home/YourUserName/Downloads/results.txt")))(Keep.right)

runnableGraph.run()