如果未指定什么,则 int 字段的默认填充是什么?例如,在以下情况下:
在这里,我没有提到薪水字段的填充物,那么在salary=8888
拨出的流式传输时的值是多少?是008888
或8888
(2个空间,然后是8888)?
<stream name="employeeFile">
<record name="employee" class="example.Employee">
<field name="firstName" length="10" />
<field name="salary" length="6" justify="right" />
</record>
</stream>
给定mapping.xml
文件,当输出小于6位时,空格将用于填充。
使用firstname = "Learner"
和salaray = 8888
的输入,将产生以下输出:
Learner 8888
在第一个名称的末尾(Learner
)和薪水的第一个数字开始(8)之间,总共有5个空间。前3个空间是firstName
字段的填充,以使其长度10。接下来的2个空间是salaray
字段的填充。这些空间出现在salaray
字段的前面,因为您指定它应该是正确的。
如果将其留在默认设备处,则salary
字段将是合理的,所有字段的默认值未指定justify
属性。那么两个空间将在salary
字段的值之后。
要更好地看到它,让我们更改mapping.xml
文件以使用星号(*)用于填充firstName
字段的值并使用零(0)用于填充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>
这会产生以下输出:
Learner***008888
实际上是8888__
(下划线是空格字符)
默认情况下,固定长度字段是合理的,并用空格填充[1]