Spring Batch - FlatFileItemReader \ 001分隔符问题

时间:2015-02-26 14:02:07

标签: spring-batch

我正在开发一个Spring批处理应用程序,我正在使用FlatFileItemReader来读取带分隔符的文件〜或|并且它的工作正常,一旦读完就调用处理器。

但是当我尝试将分隔符用作\ 001时,处理器未被调用,我也没有在控制台中收到任何错误。(Linux环境)

示例文件格式:

0002〜000000000000000470〜000006206210008078〜PR〜7044656907〜7044641561 ~~~~ 240082202 ~~~ ENG〜CH ~~ 19940926〜d ~~~ AL ~~~ P〜USA

是我的读者配置。

    <property name="resource" value="#{stepExecutionContext['fileResource']}" />
    <!-- <property name="linesToSkip" value="1"></property> -->

    <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="delimiter" value="${file.delimiter}"/>
                    <property name="names" value="sor_id,sor_cust_id,acct_id,cust_role_type_cd,cust_full_nm,mailg_adr_line_1,mailg_adr_line_2,mailg_city_nm,mailg_geo_st_cd,mailg_full_pstl_cd,mailg_cntry_cd,mailg_adr_desc,phy_adr_line_1,phy_adr_line_2,phy_city_nm,phy_geo_st_cd,phy_full_pstl_cd,phy_cntry_cd,phy_adr_desc,home_phn_num,work_phn_num,mobile_phn_num,email_adr_txt,ssn,cust_tax_idn_num,gndr_cd,martl_cd,lang_cd,acct_stat_cd,cust_brth_dt,acct_open_dt,sor_acct_stat_cd,sor_acct_stat_desc,vld_phn_num_ind,prod_cd,prft_ctr_cd,bus_legl_strc_cd,acct_use_cd,cntry_of_origin_cd" />
                </bean>
            </property>
            <property name="fieldSetMapper">
                <bean class="com.cap1.cdi.batch.SrcMasterFieldSetMapper" />
            </property>
        </bean>
    </property>

</bean>

其他人是否面临同样的问题?

此致 香卡

1 个答案:

答案 0 :(得分:0)

我将回答我自己的问题。

实际问题是控制字符在linux中用作分隔符(^ A)

在Java中,当我使用string.split(&#34; \ u0001&#34;)时,它正在工作。同样将它传递给Spring批处理flatfileitemreader作为分隔符,它就像一个魅力。

由于 香卡。