我正在尝试使用 NIO 库在 java 中逐行读取一个大文件。 但这个文件还包含标题...
try (Stream<String> stream = Files.lines(Paths.get(schemaFileDir + File.separator + schemaFileNm))) {
stream.forEach(s -> sch.addRow(s.toString(), file_delim));
}
如何修改它以跳过文件的第一行? 有什么指示吗..?
使用
Stream.skip
方法跳过标题行。
try (Stream<String> stream = Files.lines(
Paths.get(
schemaFileDir+File.separator+schemaFileNm)).skip(1)){
// ----
}
希望这有帮助!
问题是:你为什么要这么做?
我猜您正在阅读 CSV 文件。在这种情况下,您很快就会遇到其他问题,例如如何区分字符串和数字?或如何处理“”内的双引号、分号或逗号?
我的建议是使用 CSV 阅读器框架来解析文件,从一开始就避免所有这些麻烦。
您可以选择尝试使用
Iterator
Iterator<String> iter = Files.lines(Paths.get(schemaFileDir+File.separator+schemaFileNm)).iterator();
while (iter.hasNext()) {
iter.next(); // discard 1st line
sch.addRow(iter.next().toString(),file_delim); // process
}