如何使用spring批处理解析固定长度格式的文件(没有任何分隔符的文件)
如何为固定长度格式的文件(没有任何分隔符的文件)配置spring批处理读取器 每个元素都是根据其起始和结束位置确定的 行的样本: 120180208失败如何使用spring批处理解析固定长度格式的文件(没有任何分隔符的文件),spring,spring-batch,Spring,Spring Batch,如何为固定长度格式的文件(没有任何分隔符的文件)配置spring批处理读取器 每个元素都是根据其起始和结束位置确定的 行的样本: 120180208失败 220180208成功 120170208成功 1:code,20180208:date,FAILED:status您可以为此使用FixedLengthTokenizer读卡器 这就是如何配置FixedLengthTokenizer 示例文本文件 UK21341EAH4121131.11客户1 UK21341AH4221232.11客户2 UK
220180208成功
120170208成功
1:code,20180208:date,FAILED:status您可以为此使用FixedLengthTokenizer读卡器 这就是如何配置
FixedLengthTokenizer
示例文本文件
UK21341EAH4121131.11客户1UK21341AH4221232.11客户2
UK21341EAH4321333.11客户3
UK21341AH4421434.11客户4
UK21341EAH4521535.11客户5 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;
}
<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>
XML配置
@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;
}
<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>
配置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>
访问我在这里找到了答案(使用FixedLengthTokenizer)认为。需要新范围(1,12)而不是新范围(1-12)