BeanIO unquotedQuotesAllows in CSV not work

时间:2019-03-29 07:50:57

标签: java csv bean-io

我想用定界符解析文件。我使用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 个答案:

答案 0 :(得分:1)

我将假设您要保留/保留双引号(")。

unquotedQuotesAllowed配置选项仅适用于CSV流,但是基于示例测试数据,您使用管道符号(|)作为分隔符。是的,您可以更改CSV流的定界符,但我认为最好使用配置为delimited格式的流映射。 IMO可以更轻松地使用它,您无需遵守CSV格式的所有规则和细微之处。

然后我将使用以下内容:

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

使用上面的映射,我得到以下输出:

Field1: "TEST"/37326330, Field2: TEST2