[英]How do I write a header and trailer to an existing file using spring batch without overwriting the information in that file?
我在一個目錄中有多個文件,這些文件中的內容大小不一。
前文件1:
line 1.data 數據數據
前文件2:
line 1.data 數據數據
line 2.data 數據數據
line 3.data 數據數據
我需要在文件頂部附加一個標題,在底部附加一個預告片,而不使用 spring 批處理覆蓋文件中的數據。
前文件1:
表頭腳底ZZZZZZZZ0000000XXXXXXXX
line 1.data 數據數據
表頭腳底ZZZZZZZZ0000000XXXXXXXX
前文件2:
表頭腳底ZZZZZZZZ0000000XXXXXXXX
line 1.data 數據數據
line 2.data 數據數據
line 3.data 數據數據
表頭腳底ZZZZZZZZ0000000XXXXXXXX
我的上下文文件的 writer 部分具有以下一般配置,但沒有向現有測試文件添加標題或預告片。 如何配置我的 flatFileItemWriter 以將標頭和尾標添加到現有文件而不覆蓋文件的現有數據?
<bean id="addHeaderTrailerWriter" class="org.springframework.batch.item.file.FlatFileItemWriter" scope="step">
<property name="lineAggregator" ref="lineAggregator" />
<property name="resource" value="file://#{stepExecutionContext['WORK.FILE.NAME']}" />
<property name="headerCallback" ref="headerFooterCallback" />
<property name="footerCallback" ref="headerFooterCallback" />
</bean>
<bean id="lineAggregator" class="org.springframework.batch.item.file.transform.PassThroughLineAggregator"/>
<bean id="headerFooterCallback" class="headerFooterCallbackClass">
<constructor-arg name="headerFooter" ref="customHeaderFooter" />
</bean>
<bean id="customHeaderFooter" class="customHeaderFooterImplClass" >
<property name="input1" value="HEADERFOOTER" />
<property name="input2" value="ZZZZZZZZ" />
<property name="inout3" value="00000000" />
<property name="input4" value="XXXXXXXX" />
</bean>
覆蓋文件本身以添加頁眉和頁腳是不可能的。 FlatFileItemWriter
有一個append
模式,但不會在文件“內聯”中的當前數據之前插入標題。
您可以做的是通過兩個步驟創建作業:
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.