Java转义符在CSV中的应用
项目中,我们经常会遇到对数据格式中的处理情景,在此记录,同时也能帮助到需要的小伙伴们。
一、问题场景
我们需要在项目中生成CSV格式文件,同时在文件中输出对应的数据内容。但是,有一些值会出现有逗号的场景,比如SUM(MinValue, testValue), 从而导致了第一行的列名与本该对应的值产生错位的问题出现。
二、解决方式
2.1 出现问题的代码
import java.io.FileWriter;
import java.io.IOException;
public class solveComma {
public static void main(String[] args) throws IOException {
FileWriter writer = new FileWriter("C:\\Users\\file.csv");
writer.append("Column 1").append(",").append("Column 2").append(",").append("Column 3").append("\n");
writer.append("Value 1").append(",").append("SUM(MinValue, testValue)").append(",").append("value 3").append("\n");
writer.flush();
writer.close();
}
}
2.2 优化代码
public static void main(String[] args) throws IOException {
FileWriter writer = new FileWriter("C:\\Users\\file.csv");
String value2 = "\"" + "SUM(MinValue, testValue)" + "\""; // 采用 \" 加入双引号,可以解决csv的单元格被动切割逗号的问题
writer.append("Column 1").append(",").append("Column 2").append(",").append("Column 3").append("\n");
writer.append("Value 1").append(",").append(value2).append(",").append("value 3").append("\n");
writer.flush();
writer.close();
}