我有通常带标题的csv文件
f1, f2, f3
1, 2, 3
我尝试解析它:
Iterable<CSVRecord> records = CSVFormat.EXCEL.withIgnoreEmptyLines().withSkipHeaderRecord().parse(in);
records.forEach(record -> {
...
但无论如何,无论如何第一张唱片都是标题。
我错了什么?
答案 0 :(得分:1)
指定该文件具有要跳过的标题:
CSVFormat.EXCEL.withHeader().withSkipHeaderRecord();
答案 1 :(得分:0)
我知道,对吗?说你有一个装满绿色,棕色和红色M&amp; Ms的碗。你决定跳过蓝色的。你知道我要去哪儿吗?您不会拥有标题记录。
尝试.withFirstRecordAsHeader()。我觉得你很高兴。
答案 2 :(得分:0)
我认为Ion Freeman想要说的是,如果您首先声明第一行是标题,则可以跳过标题,例如:(未测试)。
Iterable<CSVRecord> records = CSVFormat.EXCEL.withIgnoreEmptyLines().withFirstRecordAsHeader().withSkipHeaderRecord().parse(in);
在我的情况下,这是不可能的,因为我的标头无效且重复。我不得不通过另一种方式将其删除。我通过阅读第一行将其丢弃。
in.readLine(); // in = BufferedReader or an other Reader
records.forEach(record -> {
...