2011-07-27 36 views
4

當我使用此函數寫入csv文件時,所有數據都嵌入在雙引號中。writeAll(ResultSet res,Boolean b)opencsv方法在數據周圍添加雙引號

有沒有辦法寫入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" 

回答

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

參考:opencsv CSVWriter JavaDoc

+0

感謝禰麼阿.. –

+0

歡迎您! – 2011-07-29 07:15:56

+1

如果某些值包含選項卡,該怎麼辦? –

0

我想添加到前面的答案(沒有足夠的積分,只通過@ 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)); 
相關問題