其他分享
首页 > 其他分享> > 在Spring Batch上从文件中跳过页眉,正文和页脚行

在Spring Batch上从文件中跳过页眉,正文和页脚行

作者:互联网

我有这个专门的文件:

H;COD;CREATION_DATE;TOT_POR;TYPE
H;001;2013-10-30;20;R
D;DETAIL_VALUE;PROP_VALUE
D;003;3030
D;002;3031
D;005;3032
T;NUM_FOL;TOT
T;1;503.45

如您所见,它具有页眉/正文/页脚行.我正在寻找跳过这些行的ItemReader.我已经在下面完成了使用ItemMatchingCompositeLineMapper标识这些行的ItemReader.

<bean id="fileReader" class="org.springframework.batch.item.file.FlatFileItemReader">
        <property name="resource" ref="myFileReference" />
        <property name="lineMapper">
            <bean class="org.springframework.batch.item.file.mapping.PatternMatchingCompositeLineMapper">
                <property name="tokenizers">
                    <map>
                        <entry key="H*" value-ref="headerLineTokenizer"/>
                        <entry key="D*" value-ref="bodyLineTokenizer"/>
                        <entry key="T*" value-ref="footerLineTokenizer"/>
                    </map>
                </property>
                <property name="fieldSetMappers">
                    <map>
                        <entry key="H*" value-ref="headerMapper"/>
                        <entry key="D*" value-ref="bodyMapper"/>
                        <entry key="T*" value-ref="footerMapper"/>
                    </map>
                </property>
            </bean>
        </property>
    </bean>

我试图添加linesToSkip属性等于1,但它只跳过了标题行.有没有一种方法可以跳过每个块的第一行(页眉,正文和页脚)?

ks

解决方法:

不. linesToSkip(如您所写)只需跳过前几行linesToSkip行.
您必须使用multiorder-line example(或this post)作为基础来编写自己的阅读器,并手动管理每个块的跳过第一行

标签:spring-batch,batch-processing,spring
来源: https://codeday.me/bug/20191122/2058549.html