在这套代码中,我需要解析给定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));
在这种情况下,预期结果将是获取标头之后的前两行,而忽略最后两行
最佳答案
您可以尝试使用以下代码,并检查其是否有效。
Iterable<CSVRecord> csvRecords = CSVFormat.EXCEL.withFirstRecordAsHeader().withIgnoreEmptyLines(true).withTrim().parse(new FileReader(url));
我添加了方法
.withTrim()
。如果仍然不起作用,则可以将每个CSVRecord检查为null或不在for循环内。