Bil*_*ins 8 java csv spring spring-batch
我试图用FlatFileItemReader解析CSV文件.此CSV包含一些引用的换行符,如下所示.
email, name
abc@z.com, "NEW NAME
ABC"
Run Code Online (Sandbox Code Playgroud)
但是这个解析失败了,必填字段为2但实际为1.
我在FlatFileReader配置中缺少什么?
<property name="lineMapper">
<bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
<!-- The lineTokenizer divides individual lines up into units of work -->
<property name="lineTokenizer">
<bean
class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
<!-- Names of the CSV columns -->
<property name="names"
value="email,name" />
</bean>
</property>
<!-- The fieldSetMapper maps a line in the file to a Product object -->
<property name="fieldSetMapper">
<bean
class="com.abc.testme.batchjobs.util.CustomerFieldSetMapper" />
</property>
</bean>
</property>
Run Code Online (Sandbox Code Playgroud)
Mic*_*low 11
开箱即用的FlatFileItemReader使用SimpleRecordSeparatorPolicy作为您的用例
您需要设置DefaultRecordSeparatorPolicy
引自它的javadoc:
RecordSeparatorPolicy,将所有行视为记录结尾,只要它们没有未终止的引号,并且不以连续标记结束.
示例xml配置
<bean id="reader"
class="org.springframework.batch.item.file.FlatFileItemReader">
...
<property name="recordSeparatorPolicy">
<bean class="org.springframework.batch.item.file.separator.DefaultRecordSeparatorPolicy" />
</property>
...
</bean>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3586 次 |
| 最近记录: |