Akka流发出随机数量的项目

时间:2019-06-19 17:23:17

标签: kotlin akka

我有一个包含66564行的文件,我将其分成每行。我将需要根据指示记录结束的行将这些行分组在一起。我打算使用splitAfter来做到这一点,但现在我已经被困住了:

    val numLines = AtomicLong(0)
    FileIO.fromPath(Paths.get(file))
            .via(Framing.delimiter(ByteString.fromString("\n"), Int.MAX_VALUE, true))
            .map { it.decodeString(StandardCharsets.UTF_8) }
            .map {
                numLines.incrementAndGet()
                it
            }
            .to(Sink.ignore())
            .run(materializer)
            .toCompletableFuture()
            .get()

    println(numLines.get())

我期望它返回行数(66564),但是每次运行(对于同一文件)它都会返回不同的值。值通常在64000和66000之间。

我确定这是一件小事,但是我已经看了几个小时了,我只是不明白为什么它会产生随机结果...

0 个答案:

没有答案