В этой статье показано, как десериализовать CSV с помощью jackson. Показанный путь:
Код: Выделить всё
CsvSchema headerSchema = CsvSchema.emptySchema().withHeader();
String CSV_WITH_HEADER = ...; // see example above
MappingIterator it = mapper
.readerFor(Point.class)
.with(headerSchema)
.readValues(CSV_WITH_HEADER);
читает весь файл сразу, то есть, если у меня 10 строк и ошибка в 5-й, я получу ошибку, но не буду знать, в какой строке, и требования к памяти будут быть выше. Я пытался прочитать его построчно, но это тоже невозможно, поскольку при этом отсоединяются строки и заголовок CSV. И я не могу просто пропустить заголовок, поскольку порядок может быть другим. И особенно я не хочу использовать порядковый номер столбца для сопоставления его с каким-либо полем POJO.
Есть ли простой способ чтения аннотированных POJO из CSV с ошибкой в каждой строке?
Подробнее здесь:
https://stackoverflow.com/questions/790 ... -at-a-time