如何跳过使用FlatFileItemReader读取文件的空字段?
问题描述:
我正在阅读有两个字段的逗号分隔文件。该文件有时不包含第二个字段,因此Spring DelimitedLineTokenizer在发生这种情况时不应该抱怨。通过载明下列如何跳过使用FlatFileItemReader读取文件的空字段?
<property name="lineTokenizer">
<bean
class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
<property name="names"
value="planNumber, paymentAmount">
</property>
<property name="delimiter">
<value>,</value>
</property>
</bean>
</property>
Spring并不是抱怨
Caused by: org.springframework.batch.item.file.transform.IncorrectTokenCountException: Incorrect number of tokens found in record: expected 2 actual 1
at org.springframework.batch.item.file.transform.AbstractLineTokenizer.tokenize(AbstractLineTokenizer.java:123)
at org.springframework.batch.item.file.mapping.DefaultLineMapper.mapLine(DefaultLineMapper.java:46)
... 60 more
的StringTokenizer不会抱怨虽然
答
设置linetokenizer以下属性设置为false ..这将有助于避免被抛出
异常<property name="strict" value="false"></property>
因为我不想避免例外,我需要要在两种情况下读取数据。我的解决方案是写一个客户Tokenizer和扩展AbstractLineTokenizer – sonx 2012-03-15 14:26:03
数据仍然会被读取..如果数据读取无效,您将需要手动处理它。 – Mahesh 2012-03-18 10:41:12