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

0x6upsns  于 2021-07-13  发布在  Java
关注(0)|答案(2)|浏览(385)

如何为固定长度格式的文件(没有任何分隔符的文件)配置spring批处理读取器。
每个元素都是根据其起始和结束位置来确定的。
线路示例:
120180208失败
220180208成功
120170208成功
1:代码,20180208:日期,失败:状态

pbossiut

pbossiut1#

您可以使用fixedlengthtokenizer读取器进行此操作。
这是您可以配置的方式 FixedLengthTokenizer .
示例文本文件
uk21341eah4121131.11客户1
uk21341eah4221232.11客户2
uk21341eah4321333.11客户3
uk21341eah4421434.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;
    }

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>
c6ubokkw

c6ubokkw2#

配置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>

访问https://docs.spring.io/spring-batch/trunk/reference/html/readersandwriters.html#fixedlengthfileformats

相关问题