Spring Batch: как разобрать файл CSV? - PullRequest
0 голосов
/ 18 апреля 2019

Одной из распространенных задач в Spring Batch, для которой он используется, является разбор CSV-файлов, но CSV-файлы имеют все формы и формы ... и некоторые из них синтаксически некорректны. В настоящее время я пытаюсь проанализировать недопустимый CSV-файл: МойДанные CSV-файла. CSV:

"1;13/4/1992;16/7/2006"
"2;31/5/1993;1/8/2009"
"3;21/4/1990;27/4/2010"

Я использовал этот код здесь .Это работает для меня, но я хочу использовать собственный CSV!Любое предложение, пожалуйста?

1 Ответ

1 голос
/ 19 апреля 2019

Как я уже сказал в комментарии к ответу на ваш вопрос, вы можете использовать FlatFileItemReader вместо ListItemReader, и оно должно работать.Я использовал ListItemReader для предоставления отдельного примера, который вы можете запустить (без необходимости загружать CSV-файл и т. Д.).Суть другого вопроса заключалась в том, как обрезать начальный / конечный " перед синтаксическим анализом строк, а хитрость заключалась в том, чтобы использовать процессор составных элементов, как показано в примере.

Вам не нужнодля создания нового считывателя, вот пример FlatFileItemReader, который вы можете использовать с тем же примером:

@Bean
public FlatFileItemReader<String> itemReader() {
    return new FlatFileItemReaderBuilder<String>()
            .name("itemReader")
            .resource(new FileSystemResource("/absolute/path/to/file"))
            .lineMapper(new PassThroughLineMapper())
            .build();
}

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...