一个java 8流,用于映射和收集除第一个项目之外的所有项目

时间:2016-05-11 17:31:04

标签: java java-8 java-stream

我有一个可能很大的文件的文件格式,其中第一行是特殊的。我想打开文件一次并将其视为一个行流,但处理第一行与所有其他行不同。其他人得到地图/收集,第一行需要被解析成一些标志。有办法吗?

这开始于:

result = Files.lines(path).map(something).collect(Collectors.toList());

除了我想转移第一行。

1 个答案:

答案 0 :(得分:9)

如果您只打开一次文件,最简单的方法是创建BufferedReader,获取第一行,然后流式传输其余文件:

BufferedReader reader = Files.newBufferedReader(path);

String firstLine = reader.readLine();

result = reader.lines()
    .map(something)
    .collect(toList());