2017-07-15 55 views
0

我需要編寫一個作業,我需要寫兩行(僅)頁眉和兩行(僅)頁腳。 我的頭會如下Spring批處理多行標題和頁腳

recordType FileName --Header Ln 1 
JobName Date --Header Ln 2 

我的頁腳是如下

JobRowCount JobTotalAmount --Footer Ln 1 
recordType FileName Date --Footer Ln 2 

我們需要在文件級一個頁眉/頁腳和工作級別的其他頁眉/頁腳。我們計劃爲多個作業創建一個文件(聚合文件),每個作業都有自己的頁眉頁腳,並且整個文件具有頁眉和頁腳。

我的數據行是簡單的線條和我一起FlatFileItemWriter和DelimitedLineAggregator

實現

我們怎樣才能做到這一點?我嘗試過兩次writer.writeHeader,但是它的打印效果是一樣的。

有什麼選擇嗎?

現在我有如下這個問題,一個骯髒的修復,但希望得到一個更好的辦法

public void writeFooter(final Writer writer) throws IOException { 
     writer.write("Footer Ln 1"); 
     writer.write(System.getProperty("line.separator")); 
     writer.write("Footer Ln 2"); 
    } 
+0

爲什麼使用換行符被認爲是「髒修復」? –

+0

由於我的文件是幾個我的作業的聚集文件,因此,可以說,如果我有2個職位我的文件將是如下 HeaderAgregated HeaderJob1 dataline1 dataline2 FooterJob1 HeaderJob2 dataline1 dataline2 FooterJob2 FooterAgregated 和使用換行符不適用於多個作業 –

回答

0

嗨,你可以使用headecallback和footercallback inertface在itemwrite如下 -

<bean id="itemWriter" class="org.spr...FlatFileItemWriter"> <property name="resource" ref="outputResource" /> <property name="lineAggregator" ref="lineAggregator"/> <property name="headerCallback" ref="headerCallback" /> <property name="footerCallback" ref="footerCallback" /> </bean> 
+0

我有我的itemWriter爲您指定,我能夠看到頁眉和頁腳。我的問題是我需要兩個標題行和2個頁腳行。一個頁眉/頁腳處於文件級別,一個頁眉/頁腳處於作業級別。我們計劃爲多個作業使用相同的文件。 –