Анализатор CSV с поддержкой Unicode в Java - PullRequest
3 голосов
/ 23 декабря 2009

Я ищу реализацию Java синтаксического анализатора CSV (значения, разделенные запятыми) с правильной обработкой данных Unicode, например, UTF-8 CSV файлы с китайским текстом. Я полагаю, что такой синтаксический анализатор должен внутренне использовать методы, связанные с точкой кода, при итерации, сравнении и т. Д. Лучше всего подойдет лицензия Apache 2 или аналогичная.

Ответы [ 3 ]

4 голосов
/ 23 декабря 2009

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

Мне лично нравится парсер CSV из Ostermiller . У них также есть хранилище Maven, если интересно.


Вы также можете проверить OpenCSV . Уже есть переполнение стека вопрос о разборе Unicode.

0 голосов
/ 23 декабря 2009

Вы пробовали Commons CSV ?

0 голосов
/ 23 декабря 2009

Довольно легко написать самому. Откройте файл с помощью FileInputStream и InputStreamReader, который использует UTF-8. Оберните его в BufferedReader, который вы можете перебирать, используя readLine (). Получить каждую строку в виде строки. Используйте регулярные выражения, чтобы разбить его на поля.

Единственная сложная часть - это построение регулярных выражений, чтобы они не рассматривали запятые, заключенные в кавычки, как разделители полей.

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

...