4

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

我正在使用 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>

我正在使用默认线映射器类并将上面的标记器作为其属性传递。

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

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

4

1 回答 1

2

看看代码

  1. DefaultFieldset 的 readString 方法使用
  2. 字符串.trim()

只是改变

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

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

请参阅DefaultFieldSet.readRawString()

从具有给定“名称”的列中读取字符串值,包括尾随空格(不要修剪)。

于 2012-04-27T18:58:49.877 回答