【发布时间】:2017-08-04 08:25:27
【问题描述】:
我有一个没有固定列数的 CSV 文件,如下所示:
col1,col2,col3,col4,col5
val1,val2,val3,val4,val5
column1,column2,column3
value1,value2,value3
有没有办法用 Spring Batch 读取这种 CSV 文件?
我尝试过这样做:
<bean id="ItemReader" class="org.springframework.batch.item.file.FlatFileItemReader">
<!-- Read a csv file -->
<property name="resource" value="classpath:file.csv" />
<property name="lineMapper">
<bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
<!-- split it -->
<property name="lineTokenizer">
<bean
class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
<property name="names"
value="col1,col2,col3,col4,col5,column1,column2,column3" />
</bean>
</property>
<property name="fieldSetMapper">
<bean
class="org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper">
<property name="prototypeBeanName" value="myBean" />
</bean>
</property>
</bean>
</property>
</bean>
但结果是这个错误:
【问题讨论】:
-
查看
AbstractLineTokenizer#setStrict(boolean)(DelimitedLineTokenizer继承自)并将其设置为false。 -
这个方法不起作用:(
标签: spring file csv spring-batch