如何使用spring批处理解析固定长度格式的文件(没有任何分隔符的文件)

如何使用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

如何为固定长度格式的文件(没有任何分隔符的文件)配置spring批处理读取器

每个元素都是根据其起始和结束位置确定的

行的样本:

120180208失败
220180208成功
120170208成功

1:code,20180208:date,FAILED:status

您可以为此使用FixedLengthTokenizer读卡器

这就是如何配置
FixedLengthTokenizer

示例文本文件

UK21341EAH4121131.11客户1
UK21341AH4221232.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)