Apache的百科全书CSV:报价输入不起作用(Apache commons CSV: quoted

2019-09-30 10:27发布

import java.io.IOException;
import java.io.StringReader;

import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;

我尝试解析与Apache CSV解析器一个简单的CSV文件。 只要我不使用引号,它工作正常。 当我尝试报价添加到输入

"a";42

它给我的错误:

invalid char between encapsulated token and delimiter

下面是一个简单,完整的代码:

public class Test {

    public static void main(String[] args) throws IOException {
        String DATA = "\"a\";12";
        CSVParser csvParser =    
        CSVFormat.EXCEL
            .withIgnoreEmptyLines()
            .withIgnoreHeaderCase()
            .withRecordSeparator('\n').withQuote('"')
            .withEscape('\\').withRecordSeparator(';').withTrim()
            .parse(new StringReader(DATA));
    }

}

我根本无法找出我的代码已经错过了。

Answer 1:

问题是如此微不足道的我错过了。

我用withRecordSeparator代替withDelimiter设置字段分隔符。

这工作如我所料:

public class Test {

    public static void main(String[] args) throws IOException {
        String DATA = "\"a\";12";
        CSVParser csvParser =    
        CSVFormat.EXCEL
            .withIgnoreEmptyLines()
            .withIgnoreHeaderCase()
            .withRecordSeparator('\n').withQuote('"')
            .withEscape('\\').withDelimeter(';').withTrim()
            .parse(new StringReader(DATA));
    }

}



文章来源: Apache commons CSV: quoted input doesn't work