我正在尝试使用库编写一个简单的CSVWriter代码OpenCSV,但遇到了一个奇怪的问题。
代码:
public class Test {
public static void main(String[] args) throws IOException {
String[] header = {"ONE", "\"TWO\"", "\"THREE\"", "\"FOUR\""};
CSVWriter writer = new CSVWriter(new FileWriter("C:/test.csv"), '|', CSVWriter.NO_QUOTE_CHARACTER);
writer.writeNext(header);
writer.flush();
writer.close();
}
}
Run Code Online (Sandbox Code Playgroud)
预期输出:
ONE|"TWO"|"THREE"|"FOUR"
实际输出:
ONE|""TWO""|""THREE""|""FOUR""
正如我们所看到的,TWO、THREE 和 FOUR 周围有双引号,但在输出中双引号是重复的。
我不想要这个,已经尝试了几个选项和CSVWriter类的构造函数,但无法解决这个问题。
有人遇到过类似的问题或知道出路吗?
谢谢
让它工作起来,下面的构造函数工作了:
CSVWriter writer = new CSVWriter(new FileWriter("C:/test.csv"), '|', CSVWriter.NO_QUOTE_CHARACTER, CSVWriter.NO_ESCAPE_CHARACTER);
Run Code Online (Sandbox Code Playgroud)
我看到默认情况下CSVWriter被视为"转义字符的原因,因此如果它出现在字符串中,它将尝试转义除了它本身"之外DEFAULT_ESCAPE_CHARACTER什么都没有的东西"。
通过传递,Writer 就不用担心检查EscapeCSVWriter.NO_ESCAPE_CHARACTER之间是否有任何需要的内容。
| 归档时间: |
|
| 查看次数: |
3751 次 |
| 最近记录: |