有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

带有KipHeaderRecord选项的java csvcommons不会跳过任何内容

我有通常的csv文件头

f1, f2, f3
1, 2, 3

我试着分析它:

 Iterable<CSVRecord> records = CSVFormat.EXCEL.withIgnoreEmptyLines().withSkipHeaderRecord().parse(in);
            records.forEach(record -> {
               ...

但不管怎么说,第一条记录还是头条记录

我错了什么


共 (3) 个答案

  1. # 1 楼答案

    我知道,对吧?假设你有一碗绿色、棕色和红色的M&;女士,你决定跳过蓝色的。你明白我要说什么了吗?你没有头球记录

    试试看。使用FirstRecordasHeader()。我想你会高兴的

  2. # 2 楼答案

    我认为Ion Freeman想说的是,如果你首先声明第一行是标题,你可以跳过标题,就像这样:(未测试)

     Iterable<CSVRecord> records = CSVFormat.EXCEL.withIgnoreEmptyLines().withFirstRecordAsHeader().withSkipHeaderRecord().parse(in);
    

    在我的例子中,这是不可能的,因为我有一个重复的无效标题。我不得不用另一种方法把它移除。我读了第一行就把它扔掉了

    in.readLine();  // in = BufferedReader or an other Reader
    records.forEach(record -> {
    ...
    
  3. # 3 楼答案

    指定要跳过的文件头:

    CSVFormat.EXCEL.withHeader().withSkipHeaderRecord();