Java Parsing Framework для сложных файлов CSV - PullRequest
2 голосов
/ 14 июля 2011

Мне нужно проанализировать сложные (не фиксированной длины) CSV-файлы для объектов Java, чтобы сравнить их значения.Сначала я попробовал Flatform Parsing Framework, мне понравился подход описания значений в дополнительном (xml) документе.Может быть, это правильный инструмент для простых CSV (а также плоских) файлов.Тем не менее, мои CSV-файлы содержат строки, которые различаются по количеству полей - иногда они занимают несколько строк.Есть также зависимости между этими полями.

Вот небольшой пример: (каждый тип имеет определенное количество дополнительных параметров)

    ; <COMMENTS (to be ignored)>
    <NAME>,<TYPE_A>,<DESCRIPTION>,<PARAMETER>
    <NAME>,<TYPE_B>,<DESCRIPTION>,<PARAMETER>,<PARAMETER>
    <NAME>,<TYPE_C>,<DESCRIPTION>,<PARAMETER>,<PARAMETER>,<PARAMETER>,<PARAMETER>
    <NAME>,<TYPE_D>,<DESCRIPTION>,<PARAMETER>,<PARAMETER>,<PARAMETER>,<PARAMETER>, -
                              <PARAMETER>,<PARAMETER>, -
                              <PARAMETER>,<PARAMETER>
    <NAME>,<TYPE_B>,<DESCRIPTION>,<PARAMETER>,<PARAMETER>
    <NAME>,<TYPE_A>,<DESCRIPTION>,<PARAMETER>

Поэтому мне нужно что-то описать и проанализировать файл CSV более сложным способом.Я новичок в этом, я слышал о генераторе парсера - это то, что мне нужно?

Ответы [ 3 ]

4 голосов
/ 14 июля 2011

Попробуйте OpenCSV (см. http://opencsv.sourceforge.net/#what-features). Отлично обрабатывает встроенный возврат каретки.

2 голосов
/ 14 июля 2011

Один из вариантов - использовать класс Scanner, или вы можете проверить Spring Batch.Я на самом деле никогда не использовал SB, но, учитывая, что пакетные задания часто читаются из простых текстовых файлов, я полагаю, что я их читаю, это учитывает все виды сопоставления объектов.

0 голосов
/ 11 августа 2011

Вы также можете попробовать джапаки

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