gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-11-01 03:27:17 27 4
gpt4 key购买 nike

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

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

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

最佳答案

看一下代码

  1. 使用DefaultFieldset的readString方法
  2. 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).

关于java - FieldSet readString 方法不读取前导空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10346222/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com