【发布时间】:2019-06-26 21:01:42
【问题描述】:
我正在尝试使用 Akka Streams 读取 Scala 中的文件,我想将结果放入列表中。我尝试了以下代码,该列表在接收器内使用新值递增,但在外部我得到一个空列表。
def readStream (path : String, date : String) : List[Array[String]] = {
var lines: List[scala.Array[String]] = List[scala.Array[String]]()
implicit val system = ActorSystem("Sys")
val settings = ActorMaterializerSettings(system)
implicit val materializer = ActorMaterializer(settings)
val sink: Sink[String, Future[Done]] = Sink.foreach((x : String) => {
val list : List[scala.Array[String]] = List(x.split("|"))
lines = lines ++ list
// println(lines.length)
})
val result: Unit = FileIO.fromPath(Paths.get(path + "transactions_" + date + ".data"))
.via(Framing.delimiter(ByteString("\n"), 256, true).map(_.utf8String))
.to(sink)
.run()
lines
}
【问题讨论】:
标签: scala akka akka-stream