【问题标题】:Including double quotes while writing CSV using apache commons in java在 java 中使用 apache commons 编写 CSV 时包括双引号
【发布时间】:2015-09-24 06:56:46
【问题描述】:

我正在使用 apache commons CSV 来编写 csv 文件。我想坚持这个图书馆。当我正在编写一个 csv 文件时,在生成文件的第一列中,它包含双引号作为引号字符,其他列按预期生成。

我真的很想在这里去掉双引号。请在下面找到相同的代码。

CSVFormat format = CSVFormat.DEFAULT;
FileWriter fw = new FileWriter("Temp.csv");
CSVPrinter printer = new CSVPrinter(fw, format);

String[] temp = new String[4];

for(int i=0; i<4; i++) {
    if(i==1)
        temp[0] = "#";
    else
        temp[0] = "";
    temp[1] = "hello" + (i+1);
    temp[2] = "";
    temp[3] = "test";

    Object[] temp1 = temp[]
    printer.printRecord(temp1);
}

fw.close();
printer.close();

Temp.csv

"",hello1,,test
"#",hello2,,test
"",hello3,,测试
"",hello4,,测试

我不希望在每一行的开头都有一个引号字符。我只想要一个不带引号的空字符串,与第 3 列相同。有人可以帮忙吗?

【问题讨论】:

  • 我知道这是 5 岁,但它在第一个字段中输出一个空字符串。这就是为什么有两个引号。有趣的是,当我开始使用 CSV 文件时,所有文本字段都被引号包围。也许我厌倦​​了,因为当时我主要在微软领域工作。现在我回来了,似乎生成 CSV 的东西要松散得多。

标签: java csv apache-commons-csv


【解决方案1】:

这是一个已知问题。您可以在 apache commons csv 问题跟踪器中为它投票:

https://issues.apache.org/jira/browse/CSV-63

【讨论】:

    【解决方案2】:

    在lars问题跟踪中提到,尝试将CS​​VFormat设置为以下,

    final CSVFormat csvFileFormat = CSVFormat.DEFAULT.withEscape('\\').withQuoteMode(QuoteMode.NONE);

    【讨论】:

    • 试过1.5版本,你知道哪个版本好用吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-02
    相关资源
    最近更新 更多