java – FieldSet readString方法不读取前导空格

我正在从文件中读取记录并插入数据库.

我正在使用DB2数据库.

记录如下:

   abc    pqr  abcd

所以在abc之前,记录的开头也有几个空格.

我正在使用SpringBatch程序和内部字段集映射器读取文件我正在打印从文件中读取的字符串:

System.out.println("*" + fieldSet.readString("FULL_RECORD") + "*");

但是,我得到的结果是:

*abc    pqr  abcd*

这意味着领先的空间不会被保留.

我的配置文件中的linetokenizer是:

<beans:property name="lineTokenizer">
  <beans:bean class="org.springframework.batch.item.file.transform.FixedLengthTokenizer">
    <beans:property name="columns" value="1-241"/>
    <beans:property name="names" value="FULL_RECORD"/>
  </beans:bean>
</beans:property>

我使用默认行映射器类并将上面的tokenizer作为其属性传递.

org.springframework.batch.item.file.mapping.DefaultLineMapper

如何在每条记录之前保留前导空格?

最佳答案 看看代码

>使用DefaultFieldset的readString方法
> String.trim()

只是改变

System.out.println("*" + fieldSet.readString("FULL_RECORD") + "*");

System.out.println("*" + fieldSet.readRawString("FULL_RECORD") + "*");

DefaultFieldSet.readRawString()

Read the String value from column with given ‘name’ including trailing
whitespace (don’t trim).

点赞