使用java在csv中插入空行

时间:2018-03-21 13:20:01

标签: java csv apache-commons-csv

我想使用java在csv中插入一个空行。我写了以下代码:

CSVFormat csvFileFormat = CSVFormat.DEFAULT.withRecordSeparator("\n").withEscape('\\');
FileWriter fileWriter = new FileWriter(csvFile);

CSVPrinter csvFilePrinter = new CSVPrinter(fileWriter,csvFileFormat);

csvFilePrinter.printRecord("data1");
csvFilePrinter.printRecord("\n");
csvFilePrinter.printRecord("data2");

当我在记事本++中打开这个生成的CSV时,我得到2个空行:

 data1
 " 
 "
 data2

如何获得一个空白行?

4 个答案:

答案 0 :(得分:3)

printRecord在数据后打印记录分隔符,在本例中为换行符。

然后你打印一个换行符,打印成一个包含另一个换行符的字符串,在不同的行上给你这两个双引号。

只需删除打印换行符的那个,或者,如果您真的想要那个空行,请使用csvFilePrinter.println()输出记录分隔符(在您的情况下为"\n")。

答案 1 :(得分:2)

尝试 csvFilePrinter.printRecord(""); csvFilePrinter.println(); printRecord将自动转义该行。您不需要额外的转义字符。

答案 2 :(得分:1)

我认为用csvFilePrinter.printRecord("\n");替换csvFilePrinter.println();可以胜任这项工作。 println()将输出行分隔符,因此您将获得没有引号的完全空行。

希望它有所帮助!

答案 3 :(得分:0)

使用

定义CSVFilePrinter
CSVFormat.DEFAULT.withRecordSeparator("\n")

因此,对于每条记录,将附加额外的\n。然后打印三条记录:“data1”,“\ n”,“data2”

这将导致“data1 \ n \ n \ ndata2 \ n”,这正是您得到的结果。

只需用“”替换第二条记录。

相关问题