使用filename装饰Java 8 Files.lines()流

时间:2017-03-21 17:58:36

标签: java java-stream

Files.lines()会返回文件中每行的Stream<String>。我想要的是一个地图流,关键是行,文件名是值。这必须是管道中的中间结果,而不是终端。

实现这一目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以尝试以下操作:

final String fileName = ""; //File name
List<String> lines = new ArrayList(); //Get the lines
lines.stream()
.map(l -> {
    Map<String, String> map = new HashMap<>();
    map.put(l, fileName);
    return map;
});

您可以使用Google GuavaImmutableMap课程来创建地图(简化版),例如

final String fileName = "";
List<String> lines = new ArrayList();
lines.stream()
.map(l -> ImmutableMap.of(l, fileName));