CSV行结尾处的未终止引号字段,丢失文本的开头

new9mtju  于 2023-07-31  发布在  其他
关注(0)|答案(1)|浏览(240)

我正在尝试使用CSV Reader解析CSV文件。这个文件非常大,我不能以任何方式修改它,因为我不是创建它的人。

FileReader fileReader = new FileReader(nameFile);
   CSVParser csvParser = getCSVParser();
   CSVReader csvReader = getCSVReader(fileReader, csvParser);
   if (csvReader != null) {
      List<String[]> allData = csvReader.readAll();
              ...
   }

字符串
csvReader.readALL()抛出IOException:CSV行末尾未终止的引号字段。丢失文本的开头:...我该怎么解决?

knpiaxh1

knpiaxh11#

CSV是有史以来最糟糕的数据存储格式,但被广泛使用。而且绝对没有标准,也没有共同的理解。
首先,分析你的输入文件,找出使用了什么结构:逗号、分号等作为字段分隔符。引用字段、引用字符等。
第二,确保没有格式冲突,如未加引号的字段包含分隔字符作为文本字符或字段中的未转义引号字符。尤其要设法找到违反结构行。
第三步,为CSV解析器设置正确的选项。
如果文件中有格式冲突,您可以尝试改进文件的生产/导出以产生有效的CSV格式(如果您知道生产者并可以访问他),或者使用能够检测和纠正格式冲突的工具(某种神奇的水晶球)对其进行预处理。

相关问题