Ash*_*ngh 5 java spring batch-processing spring-batch
春天批次我是新手.我的任务是开发读取平面文件的代码,其中值由管道"|"分隔.我发现我可以通过FlatFileReader来完成它.但是我没有得到如何在读取期间设置分隔符值以及如何使用我的POJO成员变量映射每个列.
平面文件中的示例值如下.
3345|742|0|N
3346|743|1|A
3347|742|0|N
3348|742|1|C
3345|743|0|K
Run Code Online (Sandbox Code Playgroud)
提前致谢.
该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>
Run Code Online (Sandbox Code Playgroud)
<SOME_VALUE>要读取的文件的模式在哪里,并且<LIST_OF_VALUES>是分隔文件中的列名列表.
使用 Spring Batch
DelimitedLineTokenizer tokenizer = new DelimitedLineTokenizer();
tokenizer.setDelimiter("|");
tokenizer.setNames(new String[]{"id", "name"});
DefaultLineMapper lineMapper = new DefaultLineMapper<Seller>();
lineMapper.setLineTokenizer(tokenizer);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5723 次 |
| 最近记录: |