如何跳过空记录CSVFormat解析器

时间:2019-09-03 16:36:36

标签: java spring-boot csv

在这组代码中,我必须解析给定URL的csv文件。问题是,有时文件在文件末尾会附加空行(我目前无法控制要解析的文件)。解决方案是忽略解析文件时未提供所有值的行

以下是一些示例数据:

HEADER1,HEADER2,HEADER13,HEADER4,HEADER5,HEADER6
1,tt,9/2/2019,12000,4116,2307306
2,tt1,9/2/2019,12000,4147,1137039
,,,,,,
,,,,,,

我尝试了以下解决方案,但未成功

Iterable<CSVRecord> csvRecords = CSVFormat.EXCEL.withFirstRecordAsHeader().withIgnoreEmptyLines(true).parse(new FileReader(url));

在这种情况下,预期结果将是获得标头之后的前两行,而忽略最后两行

1 个答案:

答案 0 :(得分:0)

您可以尝试使用以下代码,并检查其是否有效。

Iterable<CSVRecord> csvRecords = CSVFormat.EXCEL.withFirstRecordAsHeader().withIgnoreEmptyLines(true).withTrim().parse(new FileReader(url));

我添加了方法.withTrim()

如果仍然无法运行,则可以将每个CSVRecord都检查为null或不在for循环内。