我有一个包含记录计数器的固定长度流
- 记录以
Z
- 字符 16+9(人形)包含
B record counter
- 字符 25+9(人形)包含
C record counter
- 所有数字都用右边填充
0
并对齐 A
记录在位置 1898 以+结尾CRLF
(记录长 2000 个字符)
以下 BeanIO 映射代码
<record name="RECORD_Z" class="com.acme.ftt2017.RecordZ" order="4" minOccurs="1" maxOccurs="1" maxLength="1900">
<field name="tipoRecord" rid="true" at="0" ignore="true" required="true" length="1" lazy="true" literal="Z" />
<field name="numeroRecordB" at="15" length="9" padding="0" align="right" trim="true" />
<field name="numeroRecordC" at="24" length="9" padding="0" align="right" trim="true" />
<field name="terminatorA" at="1897" length="1" rid="true" literal="A" ignore="true" />
</record>
豆
public class RecordZ implements Serializable
{
private final char tipoRecord = 'Z';
private Integer numeroRecordB, numeroRecordC;
// G & S omitted
}
我在调试以下代码时进行了三次检查:
RecordZ trailer = new RecordZ();
trailer.setNumeroRecordB(1);
trailer.setNumeroRecordC(countRecordC); // equals 1 in debug
log.debug("Exporting record Z");
log.trace("Record Z: " + trailer.toString());
exporter.write(FttRecordTypes.RECORDTYPE_FTT_Z, trailer);
但是生成的数据文件包含以下内容
Z 000000000000000000 A
预期的
Z 000000001000000001 A
我的导出代码有什么问题?为什么我总是得到零?