我有一个包含78400行(25MB)的csv文件。
当我逐行读取csv文件时,1列在第2行有错误。
它包含反斜杠字符。
当我阅读本专栏时,它会将csv文件中的所有剩余列读作单列。
"CDE","456","6346","testdata2","MyData2","ClassB"
"ABC","123","4567\","testdata","MyData","ClassA"
"CDE","456","6346","testdata2","MyData2","ClassB"
如何在java中使用行分隔符跳过该行?
答案 0 :(得分:0)
您可以编写方法,通过将行拆分为单词进行检查,然后识别\用作char
String line=br.readline();
String words =line.split(",");
char[] word=words.toCharArray();
boolean escape=(word=='\');
您可以识别逃生并特别处理它。
答案 1 :(得分:0)
如果您使用的是openCSV,那么只需使用反斜杠以外的转义字符定义解析器。如果您不想使用转义字符,可以使用ICSVParser.NULL_CHARACTER,或者如果您使用的是3.9版本的openCSV,则可以使用RFC4180Parser。
RFC4180ParserBuilder rfc4180ParserBuilder = new RFC4180ParserBuilder();
ICSVParser rfc4180Parser = rfc4180ParserBuilder.build();
CSVReaderBuilder builder = new CSVReaderBuilder(sr);
CSVReader reader = builder.withCSVParser(parser).build();