我有一个项目编写器,如下所示:
<beans:property name="lineAggregator">
<beans:bean class="org.springframework.batch.item.file.transform.FormatterLineAggregator">
<beans:property name="fieldExtractor">
<beans:bean class="org.springframework.batch.item.file.transform.BeanWrapperFieldExtractor">
<beans:property name="names" value="column1, column2, column3, column4 " />
</beans:bean>
</beans:property>
<beans:property name="format" value="%-8s%-12s%-11s%-16s" />
</beans:bean>
</beans:property>
很明显,我将 4 列写入固定格式文件,列长分别为 8、12、11 和 16。
但是,假设第 1 列字符串是 14 个字符而不是 8 个字符,那么输出文件会通过将整行向前推来盲目地容纳所有 14 个字符。
THIS IS A TEST
Expecting:
THIS IS COL2STARTS
Getting:
THIS IS A TESTCOL2STARTS
如何避免这种情况?
剩下的字符不应该被截断,只写前 8 个字符吗?
我是否需要在我的代码中进行验证以严格按照列的预期仅传递 8 个字符?