java - 一个 java 8 流,映射并收集除第一项以外的所有项

标签 java java-8 java-stream

我有一种文件格式,适用于第一行很特殊的潜在大文件。我想打开文件一次并将其视为行流,但处理第一行的方式与所有其他行不同。其他人得到 map /收集,第一行需要被解析成一些标志。有办法吗?

这开始于:

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

除了我想转移第一行。

最佳答案

如果您必须只打开文件一次,最简单的方法是制作一个 BufferedReader,获取第一行,然后流过其余部分:

BufferedReader reader = Files.newBufferedReader(path);

String firstLine = reader.readLine();

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

关于java - 一个 java 8 流,映射并收集除第一项以外的所有项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37169587/

相关文章:

java - 抽象类中的 createMock 和非抽象方法

java - 请求用户输入的类方法

java - 修复使用 Java-Streams 进行 reduce() 操作的通配符捕获错误

java - 以最有效和可读的方式进行条件初始化

java - OCSP 检查 Java 安全套接字

java - 使用 Java 8 将一个值列表与另一个值列表映射

java - Tomcat 和 Objectdb(通过 GWT/Rpc): java. lang.NoClassDefFoundError

Java 服务器在接收 HTTP post 请求时挂起

java.util.ConcurrentModificationException 流

Java8 可选替换抛出多个异常的方法