csv编写器转义字符问题

时间:2014-05-23 13:06:13

标签: java csv

我的应用程序我想在ecapse字符中写csv writer问题

以下

的输出
"art_number
 test"  "category"  "testtest"  

但我想要

"art_number\ntest"  "category"  "testtest"  

这是我的代码:

public static void main(String[] args) throws IOException {
    CSVWriter writer = new CSVWriter(new FileWriter("D:/temp/test.csv"), '\t' );

    // int i = 0;
    List<String[]> csvRows = new ArrayList<String[]>();
    String[] header = new String[17];
    header[0] = "art_number\ntest"; 

    header[1] = "category";     
    header[2] = "testtest";
    writer.writeNext(header);

    writer.close();

1 个答案:

答案 0 :(得分:0)

基本上\n被视为新行字符,您可以使用\转义它,如下所示:

header[0] = "art_number\\ntest"; 

修改

在将其写入csv文件

之前,只需更新这里的值
for (int i=0;i<header.length;i++) {
    header[i]=header[i].replaceAll("\\n", "\\\\n");
}

writer.writeNext(header);

注意:使用List代替静态数组,以避免在这种情况下使用NullPointerException