1

我正在使用 opencsv 读取 csv 文件。有时 csv 文件中有单引号或双引号。我如何在不更改 csv 文件本身的数据的情况下读取它们。

现在,如果我用两个单引号替换一个单引号,它可以正常工作,与双引号相同,用两个替换一个单引号并且它可以工作。但我不想接触源文件。

访问代码如下

CSVReader reader = new CSVReader(new InputStreamReader(new FileInputStream(file), "UTF-8"), delimiter,'\"',0);
data = a1;b1;c1;hello"world;d1;e1
       a2;b3;c2;hello"world;d2;e2
; is the delimiter

其结果是跳过也包含双引号的下一行,插入所有奇数行,跳过偶数行

提前致谢

4

2 回答 2

2

最终使用 javacsv。没有任何问题

于 2012-11-19T14:34:57.497 回答
1

解决方案 1:您可以做的一件可能的事情,假设您不想在输出文件中包含双课程/单课程。

  1. 阅读完整的文件并用空格替换所有不需要的特殊字符。(使用正则表达式很简单)
  2. 现在使用 CSVReader 读取文件。

解决方案 2:如果要保留所有特殊字符,请在特殊字符前加上“\”反斜杠。然后阅读它。

于 2016-02-22T13:02:40.580 回答