Wir versuchen, Dateien aus akka-Streams zu lesen. Dateien enthalten Protokolle und die Anwendung ist einfach zum Schreiben der Protokolle in neue Dateien. Aber wenn wir unser Programm ausführen, bekommen wir eine unerwartete Ausgabe. Unser Code ist unter:Dateien können nicht mit dem akka-Stream gelesen werden
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
enthält 1000 Linienaufzeichnung, aber output
dieses Programms ist: Success(Done), 0 bytes read.
Dennoch sind wir nicht das eigentliche Programm zu bekommen.
Hey @Viktor Datei ist auf dem richtigen Weg, aber ich bin mir nicht sicher, was wird passieren? –
@ harmeet-singh-taara überprüfe deinen Zielpfad - "." ist nicht gut, bitte benutze stattdessen einen Dateinamen. – lutzh
@Viktor, wir ändern unseren Code wie 'FileIO.toPath (Paths.get (" home/harmeet/logs.log "), setzen (CREATE, WRITE, APPEND))', aber immer noch gleiche Ausgabe. –