[英]Unable to read files by using akka stream
我們正在嘗試從akka流中讀取文件。 文件包含日志,該應用程序很容易將日志寫入新文件。 但是,當運行我們的程序時,我們得到了意外的輸出。 我們的代碼如下:
class LogsAkkaStream {
implicit val system = ActorSystem("AkkaStreams")
implicit val ec = system.dispatcher
implicit val materializer = ActorMaterializer()
val source: Source[ByteString, Future[IOResult]] = FileIO.fromPath(Paths.get("/home/harmeet/workspace/mylogs.logs"))
val sink: Sink[ByteString, Future[IOResult]] = FileIO.toPath(Paths.get("."), Set(CREATE, WRITE, APPEND))
val runnableGraph: RunnableGraph[Future[IOResult]] = source.to(sink)
runnableGraph.run().foreach { result =>
println(s"${result.status}, ${result.count} bytes read. ")
}
}
object LogsAkkaStream extends App {
new LogsAkkaStream
}
mylogs.logs
包含1000行記錄,但是此程序的output
為: Success(Done), 0 bytes read.
盡管如此,我們仍未獲得實際的程序。
當我將已知工作路徑放入文件時,它將在我的REPL中工作。
您將要確保源文件的路徑正確,並且要將正確的目標路徑放置到文件中 。
另外,您將要使用toMat
而不是to
這樣您就可以同時獲得Read操作的IOResult和Write操作。 (我建議您使用_ zip _
以便獲得Future[(IOResult, IOResult)]
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.