我使用OpenCSV中的Java CSVReader和CSVWriter
public static void main(String[] args) throws IOException { File inputFile=new File("e:\\temp\\5.csv"); File outputFile=new File("e:\\temp\\5_out.csv"); CSVReader reader=new CSVReader(new FileReader(inputFile)); CSVWriter outputWriter = new CSVWriter(new FileWriter(outputFile),',', '"'); //CSVWriter outputWriter = new CSVWriter(new FileWriter(outputFile),',', '"','\\'); Listlines=reader.readAll(); outputWriter.writeAll(lines); outputWriter.flush(); outputWriter.close(); reader.close(); }
INPUT1
"\"7 BURY NEW ROAD MANCHESTER","","","","Prestwich"
OUTPUT1
"""7 BURY NEW ROAD MANCHESTER","","","","Prestwich"
我不明白为什么输出就是这样。有人可以解释逻辑吗?
如果我取消注释它评论的行,基本上告诉作者使用' \'为了逃避引号和转义字符,它有以下结果:
OUTPUT2
"\"7 BURY NEW ROAD MANCHESTER","","","","Prestwich"
我也不明白为什么输出就是这样。
答案 0 :(得分:0)
我认为这是有道理的。 CSVReader
使用\
as escape character,似乎无法更改。阅读后,您的输入将从以下结构开始:
DELIMITER - ESCAPED_QUOTATION_MARK
你的第一个CSVWriter的转义符是“,所以第一个输出以
开头"""
你的第二个CSVWriter与\
一起逃脱,所以
"\"
输出是。
(消失的曼彻斯特也是问题的一部分还是只是一个错字?)