我的情况是需要解析复杂的平面文件,每条记录分散到多行,如下所示。
BFT ICVMORDR1400210IJ5 *P*
00800RRJNZM 1EK19 1EL ***** 101
00800RRJNZM ******************* 5 201
00800RRJNZM ******************* 5 202
00800RRJNZM ******************* 5 203
00800RRJNZM ******************* 5 204
00800RRJNZM ******************* 5 205
00800RRJNZM ****************** 5 206
00800RRJNZM ****************** 5 301
00800RRJNZM ****************** 5 302
00800RRJNZM ****************** 59401
我有文件的标题行,详细记录分散到4种不同类型的记录,如最后100,200,300,400系列。如何使用Spring Batch解析这个复合体。
答案 0 :(得分:0)
将一行读作记录 - 您可以在ur xml文件中使用以下配置 -
<bean id="customlineTokenizer"
class="org.springframework.batch.item.file.transform.FixedLengthTokenizer">
<property name="columns" value="1-5,6-10" />
<property name="names" value="firstname,lastname" />
</bean>
<bean id="customFieldSetMapper" class="com.mkyong.model.ReportFieldSetMapper" />
<bean id="cvsFileItemReader" class="org.springframework.batch.item.file.FlatFileItemReader">
<property name="strict" value="false" />
<property name="resource" value="classpath:report1" />
<property name="lineMapper">
<bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
<property name="lineTokenizer" ref="customlineTokenizer" />
<property name="fieldSetMapper" ref="customFieldSetMapper" >
</property>
</bean>
</property>
</bean>