簡體   English   中英

無法使用Akka流讀取文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM