如何为固定长度格式文件(没有任何分隔符的文件)配置弹簧批阅读器。
每个元素都是根据其起始位置和结束位置确定的。
行样本:
120180208FAILED
220180208SUCCES
120170208SUCCES
1:代码,20180208:日期,失败:状态
答案 0 :(得分:4)
您可以使用 FixedLengthTokenizer 阅读器。
这是您配置FixedLengthTokenizer
的方法。
示例文本文件
UK21341EAH4121131.11customer1
UK21341EAH4221232.11customer2
UK21341EAH4321333.11customer3
UK21341EAH4421434.11customer4
UK21341EAH4521535.11customer5
Java配置
@Bean
public FixedLengthTokenizer fixedLengthTokenizer() {
FixedLengthTokenizer tokenizer = new FixedLengthTokenizer();
tokenizer.setNames("ISIN", "Quantity", "Price", "Customer");
tokenizer.setColumns(new Range(1-12),
new Range(13-15),
new Range(16-20),
new Range(21-29));
return tokenizer;
}
XML配置
<bean id="fixedLengthLineTokenizer"
class="org.springframework.batch.io.file.transform.FixedLengthTokenizer">
<property name="names" value="ISIN,Quantity,Price,Customer" />
<property name="columns" value="1-12, 13-15, 16-20, 21-29" />
</bean>
答案 1 :(得分:0)
在配置FixedLengthLineTokenizer时,必须以范围的形式提供以下每种长度:
<bean id="fixedLengthLineTokenizer"
class="org.springframework.batch.io.file.transform.FixedLengthTokenizer">
<property name="names" value="ISIN,Quantity,Price,Customer" />
<property name="columns" value="1-12, 13-15, 16-20, 21-29" />
</bean>