我有一个包含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之间。
我确定这是一件小事,但是我已经看了几个小时了,我只是不明白为什么它会产生随机结果...