BeanIO без кавычек Цитаты Разрешено в CSV не работает - PullRequest
0 голосов
/ 29 марта 2019

Я хочу разобрать файл с разделителем. Я использую BeanIO 2.1.0. У меня есть файл, который содержит строку, в которой есть двойная кавычка:

"TEST"/37326330|TEST2

В конфиге я устанавливаю параметр:

<stream name="csvStream" format="csv">
     <parser>
         <property name="delimiter" value="|"/>
         <property name="unquotedQuotesAllowed" value="true"/>
     </parser>
</stream>

Но это не работает! Я получаю ошибку:

org.beanio.MalformedRecordException: Malformed record at line 1: Invalid character found outside of quoted field at line 1

Но почему? Почему этот параметр не работает?

1 Ответ

1 голос
/ 29 марта 2019

Я собираюсь предположить, что вы хотите сохранить / сохранить двойные кавычки (").

Параметр конфигурации unquotedQuotesAllowed применим только к потокам CSV, но, исходя из данных тестового примера, вы используете символ канала (|) в качестве разделителя. Да, вы можете изменить разделитель для потока CSV, но я думаю, что было бы лучше просто использовать отображение потока, настроенное как формат delimited. ИМО, с этим легче работать, и вам не нужно соблюдать все правила и тонкости формата CSV.

Я бы тогда использовал следующее:

<stream name="csvStream" format="delimited">
  <parser>
    <property name="delimiter" value="|"/>
  </parser>
  <record name="...">
  ....
  </record>
</stream>

Используя приведенное выше отображение, я получаю следующий вывод:

Field1: "TEST"/37326330, Field2: TEST2
...