如果未指定任何内容,那么BeanIO中 int 字段的默认填充是什么?例如,在以下情况下:
在这里,我没有为 salary (薪金)字段提到填充,那么当编组为salary=8888
流式传输时,值是什么?
是008888
还是8888
(两个空格后接8888)?
<stream name="employeeFile">
<record name="employee" class="example.Employee">
<field name="firstName" length="10" />
<field name="salary" length="6" justify="right" />
</record>
</stream>
答案 0 :(得分:0)
它实际上是8888__
(下划线是空格字符)
默认情况下,固定长度的字段将左对齐并用空格[1]填充
答案 1 :(得分:0)
鉴于您的mapping.xml
文件,当输出少于6位数字时,空格将用于填充输出。
使用firstname = "Learner"
和salaray = 8888
的输入将产生以下输出:
Learner 8888
firstName(Learner
)的末尾与薪水的第一个数字(8)的开头之间总共有5个空格。前3个空格是firstName
字段的填充,以使其长度为10。接下来的2个空格是salaray
字段的填充。空格显示在salaray
字段的前面,因为您指定了它应该右对齐。
如果将其保留为默认值,则salary
字段将保持对齐,这是所有字段的默认值,而不指定justify
属性。那么这两个空格将位于salary
字段的值之后。
为了更好地查看它,让我们将mapping.xml
文件更改为使用星号(*)填充firstName
字段的值,并使用零(0)填充{{1 }}字段。
salary
这将产生以下输出:
<stream name="employeeFile" format="fixedlength">
<record name="employee" class="example.Employee">
<field name="firstName" length="10" padding="*"/>
<field name="salary" length="6" justify="right" padding="0"/>
</record>
</stream>