Я не вижу ничего плохого в вашем коде - но я также не могу проанализировать ваши данные, как ожидалось - я столкнулся с той же проблемой, что и вы. Это похоже на ошибку (что удивительно). И если это не ошибка, то правильное использование слишком неясное для меня.
В качестве альтернативы вы можете использовать Commons CSV:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.8</version>
</dependency>
Пример кода:
import com.opencsv.CSVReader;
import com.opencsv.CSVWriter;
...
private void commonsCsvTest() throws URISyntaxException, IOException {
Path path = Paths.get(ClassLoader.getSystemResource("csv/escapes.csv").toURI());
Reader in = new FileReader(path.toString());
Iterable<CSVRecord> records = CSVFormat.DEFAULT.withEscape('\\').parse(in);
for (CSVRecord record : records) {
System.out.println(record.get(3));
}
}
Используя ваши данные во входном файле "escapes.csv", мы получаем следующий вывод:
String with , comma in it
Очевидно, что вы можете изменить способ чтения входного файла, чтобы он соответствовал вашей конкретной ситуации c.