2015-07-10 24 views
4

我是春季批次新款。我的任务是开发读取平面文件的代码,其中值由管道“|”分隔。我发现我可以通过FlatFileReader来完成。但我没有得到如何在读取过程中设置分隔符值以及如何使用POJO成员变量映射每列。如何在Spring批处理的FlatFileReader中设置分隔符值?

平面文件中的示例值如下。

3345|742|0|N 

3346|743|1|A 

3347|742|0|N 

3348|742|1|C 

3345|743|0|K 

在此先感谢。

回答

7

FlatFileItemReader将每个记录的解析委托给LineTokenizer(通过LineMapper)。我假设你使用DelimitedLineTokenizer,它允许你设置一个分隔符(默认是a,)。要使用竖线作为分隔符配置此:

<bean id="reader" class="org.springframework.batch.item.file.FlatFileItemReader"> 
    <property name="resource" value="<SOME_VALUE>"/> 
    <property name="lineMapper"> 
     <bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper"> 
      <property name="lineTokenizer"> 
       <bean class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer"> 
        <property name="names" value="<LIST_OF_VALUES>"/> 
        <property name="delimiter" value="|"/> 
       </bean> 
      </property> 
      <property name="fieldSetMapper" ref="myFieldSetMapper"/> 
     </bean> 
    </property> 
</bean> 

哪里<SOME_VALUE>是便于阅读您的文件和<LIST_OF_VALUES>是在分隔文件列名的列表模式。

+0

感谢您的回复。这很有帮助。 –

相关问题