本文介紹了Spring批量寫入固定格式文件的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我有一個項目寫入器,如下所示:
<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個字符?
推薦答案
您必須設置精度和寬度。嘗試此格式化程序字符串:
<beans:property name="format" value="%-8.8s%-12.12s%-11.11s%-16.16s" />
參見:FormatterLineAggregator,Formatter
這篇關于Spring批量寫入固定格式文件的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,