Метод writeAll (ResultSet res, Boolean b) opencsv добавляет двойные кавычки вокруг данных

Когда я использую эту функцию для записи в CSV-файл, все данные заключаются в двойные кавычки.

Есть ли способ записать в файл csv без двойных кавычек?

CSVWriter writer = new CSVWriter(new FileWriter(table+".csv"), '\t');
            writer.writeAll(rset, true);
            writer.close();

файл содержит данные в виде

"EMPNO" "ENAME" "JOB"   "MGR"   "HIREDATE"  "SAL"   "COMM"  "DEPTNO"    "TAG"   "LOOKUP"
"7369"  "SMITH" "CLERK" "7902"  "17-Dec-1980"   "800"   "2" "20"    "E" "1"
"7499"  "ALLEN" "SALESMAN"  "7698"  "20-Feb-1981"   "1600"  "2" "30"    "E" "2"
"7521"  "WARD"  "SALESMAN"  "7698"  "22-Feb-1981"   "1250"  "2" "30"    "E" "3"
"7566"  "JONES" "MANAGER"   "7839"  "02-Apr-1981"   "2975"  "2" "20"    "E" "2"

person Shamis Shukoor    schedule 27.07.2011    source источник


Ответы (2)


CSVWriter writer = new CSVWriter(new FileWriter(table+".csv"), '\t', CSVWriter.NO_QUOTE_CHARACTER);
            writer.writeAll(rset, true);
            writer.close();

Ссылка: opencsv CSVWriter JavaDoc

person Community    schedule 27.07.2011
comment
что, если некоторые значения содержат вкладки? - person ililit; 10.08.2012
comment
У вас не может быть значения, содержащего вкладки, если ваш CSV-файл разделен табуляцией. То же самое относится к запятой или точке с запятой, или пробелу, или еще чему-то. - person ; 23.01.2013

Я хотел бы добавить к предыдущему ответу (недостаточно баллов, чтобы просто добавить комментарии) @ user591593 - при использовании конструктора NO_QUOTE_CHARACTER вы должны сами экранировать значения. См. StringEscapeUtils.

Более того, лучше указать правильную кодировку, такую ​​как UTF-8, вместо того, чтобы предполагать, что система по умолчанию является правильной:

CSVWriter writer = new CSVWriter(new OutputStreamWriter(new FileOutputStream(file), "UTF-8"), '\t', CSVWriter.NO_QUOTE_CHARACTER);

String s = "some fun \t string with \" double quotes and \n new lines";

writer.writeNext(StringEscapeUtils.escapeCsv(s));
person user1454926    schedule 31.03.2015