我有以下长度为7的String []。
["column1Item", "column2Item", "column3Item", "column4Item", "column5Item", "column6Item,column6Item", "column7Item,column7Item"]
第六个元素是
"column6Item,column6Item"
第7个元素是
"column7Item,column7Item"
当我将其写入csv时,我得到8列而不是6列
column1Item,column2Item,column3Item,column4Item,column5Item,column5Item,column6Item,column6Item
这是我目前写给csv的方式:
CSVWriter writer = new CSVWriter(new FileWriter("output.csv"),',',CSVWriter.NO_QUOTE_CHARACTER);
writer.writeAll(newCsvBody);
writer.flush();
writer.close();
这种方法有什么问题?
答案 0 :(得分:4)
您的csv分隔符也出现在您要编写的元素内。使用不同的csv分隔符(例如,分号),或在'column6Item,column6Item'和'column7Item,column7Item'元素内转义逗号。
答案 1 :(得分:1)
使用下面的代码,我得到7列。
public static void main(String[] args) throws IOException {
String[] ss = {"column1Item", "column2Item", "column3Item", "column4Item", "column5Item", "column6Item,column6Item", "column7Item,column7Item"};
FileOutputStream fos = new FileOutputStream("output.csv");
OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
CSVWriter writer = new CSVWriter(osw);
writer.writeNext(ss);
writer.close();
osw.close();
}
答案 2 :(得分:-1)
由于逗号是内部值,因此您应该尝试使用其他分隔符,例如管道符号(|)。