我读了这样的文件:
try (Stream<String> lines = java.nio.file.Files.lines(Path.of(filePath), StandardCharsets.UTF_8)) {
lines.skip(1).forEach(line -> {
handleLine(line);
});
这让我可以在文件完全读取之前对其进行处理。 我想对 csv 文件执行相同的操作,并获得 csv 阅读器具有的解析功能,例如将每个字段映射到其标头。
使用filereader,然后在解析时转换为流
请参阅此处:使用流式传输和解析https://northcoder.com/post/streaming-and-parsing-a-csv-file/
private void streamFileData(String fileName, Consumer<Word> consumer) throws IOException {
final Reader reader = new FileReader(fileName, StandardCharsets.UTF_8);
StreamSupport.stream(format.parse(reader).spliterator(), true)
.map((csvRecord) -> Word.fromCsvRecord(csvRecord))
.forEach(consumer);
}