gpt4 book ai didi

java - 如何使用 Akka 在 10 秒延迟后读取文件中的每个新行?

转载 作者:行者123 更新时间:2023-11-30 01:57:13 27 4
gpt4 key购买 nike

我正在尝试逐行读取文件,但有一些延迟。

例如:

  • 读取并打印文件的第一行
  • 等待 10 秒
  • 读取并打印文件的第二行
  • 等等

到目前为止我已经尝试过这样的事情:

final Path filePath = Paths.get('path/to/file');
final ActorSystem system = ActorSystem.create();
final Materializer materializer = ActorMaterializer.create(system);

Sink<ByteString, CompletionStage<Done>> printlnSink =
Sink.<ByteString>foreach(chunk -> System.out.println(chunk.utf8String()));

final CompletionStage<IOResult> result =
FileIO.fromPath(filePath)
.throttle(1, Duration.create(10, TimeUnit.SECONDS), 1, ThrottleMode.shaping())
.to(printlnSink)
.run(materializer);

但是这一次会爆发太多行,而不是一次爆发一行。

有什么解决办法吗?

最佳答案

final CompletionStage<IOResult> result = 
.via(Framing.delimiter(ByteString.fromString(System.lineSeparator()),10000,FramingTruncation.ALLOW))
FileIO.fromPath(filePath)
.throttle(1, Duration.create(10, TimeUnit.SECONDS), 1, ThrottleMode.shaping())
.to(printlnSink)
.run(materializer);

看看这是否适合您,framing Class文件应澄清

关于java - 如何使用 Akka 在 10 秒延迟后读取文件中的每个新行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54003712/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com