我想将文件向下传递到流,但是在某个中间阶段,我想通过将其转换为行流来对其进行处理。
我有这样的东西:
Stream.flow(file1, file2, file3)
.via(processFileFlow)
.via(archiveFlow)
ProcessFileFlow看起来像这样:
Flow.create().map(file1 -> Files.lines(file1)).map(line -> {send(line); return line;})
我可以创建“文件和文件行对”,以将文件向下传递到流,但是随后归档方法被调用太多次,因为文件被复制的次数与该文件中的行数相同。 我只想为文件运行一次归档流。
做到这一点的最佳方法是什么?
答案 0 :(得分:0)
看看fold [T](zero:T)(f:(T,Out)⇒T)方法,这将使您可以将(文件,行)缩小为例如一系列文件在调用存档步骤之前。