Apache Commons CSV: цитируемый ввод не работает
import java.io.IOException;
import java.io.StringReader;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
Я пытаюсь проанализировать простой CSV-файл с анализатором Apache CSV. Это работает нормально, пока я не использую кавычки. Когда я пытаюсь добавить цитату на вход
"a";42
это дает мне ошибку:
invalid char between encapsulated token and delimiter
Вот простой, полный код:
public class Test {
public static void main(String[] args) throws IOException {
String DATA = "\"a\";12";
CSVParser csvParser =
CSVFormat.EXCEL
.withIgnoreEmptyLines()
.withIgnoreHeaderCase()
.withRecordSeparator('\n').withQuote('"')
.withEscape('\\').withRecordSeparator(';').withTrim()
.parse(new StringReader(DATA));
}
}
Я просто не могу узнать, что я пропустил в коде.
1 ответ
Проблема была настолько тривиальной, что я ее пропустил.
я использовал withRecordSeparator
вместо withDelimiter
установить разделитель полей.
Это работает, как я ожидал:
public class Test {
public static void main(String[] args) throws IOException {
String DATA = "\"a\";12";
CSVParser csvParser =
CSVFormat.EXCEL
.withIgnoreEmptyLines()
.withIgnoreHeaderCase()
.withRecordSeparator('\n').withQuote('"')
.withEscape('\\').withDelimeter(';').withTrim()
.parse(new StringReader(DATA));
}
}