如果appendAllowed设置为true,writeHeader()是否仍在运行?

时间:2016-02-02 11:09:19

标签: java spring append spring-batch writer

美好的一天,

我正在创建一个弹出批处理,它将以文本形式写出输出。

基本上输出将是1行标题和多行细节。

然后,在xml中,我设置了

<property name="appendAllowed" value="true" />

为我的作家。

在我的编写器java文件中,

@Override
public void writeHeader(Writer writer) throws IOException {
   // write header here
}

@Override
public void write(List< ? extends ZakatVO > items) throws Exception {

    List< String > lines = new ArrayList< String >( );
    // generate details here
    this.delegate.write( lines );
}

首先,我预计如果再次运行该作业,它会将另外一行标题追加到同一输出文件中。

但我得到的只是追加细节线。

这是我错误配置的吗?或者这是正常的行为?

请告知。

1 个答案:

答案 0 :(得分:1)

你的&#34; writeHeader&#34;代码为空,因此不会写任何标题。您必须在方法中显式写入标头。 像:

@Override
    public void writeHeader(Writer writer) throws IOException {
writer.write("something....");

其次,您已明确禁用对现有文件的追加,因此它不会在第二次运行时附加任何内容。