Java Spring批处理在有效csv头之前写入行

Java Spring批处理在有效csv头之前写入行,java,spring-batch,Java,Spring Batch,我已经使用SpringBatch从数据库生成了一个csv文件。但是,我需要在实际页眉..数据之前添加多行(行总数、值和当前日期、值)。有什么想法吗 记录(10) 日期:2020-0301 ----标题---- ---数据--您可以使用FlatFileHeaderCallback写入头。 比如说 public class CsvHeaderCallback implements FlatFileHeaderCallback { @Override public void write

我已经使用SpringBatch从数据库生成了一个csv文件。但是,我需要在实际页眉..数据之前添加多行(行总数、值和当前日期、值)。有什么想法吗

记录(10) 日期:2020-0301 ----标题----
---数据--

您可以使用
FlatFileHeaderCallback
写入头。 比如说

public class CsvHeaderCallback implements FlatFileHeaderCallback {
    @Override
    public void writeHeader(Writer writer) throws IOException {
        //your logic here
        //writer.write("records_count,10 date,2020-0301");
    }
}
您可以将这个bean注入到
FlatFileItemWriter

还是在你的作者身上

public class MyFlatFileWriter extends FlatFileItemWriter {

public MyFlatFileWriter (){
    super.setHeaderCallback(new FlatFileHeaderCallback() {

        public void writeHeader(Writer writer) throws IOException {
         //your logic here
        //writer.write("records_count,10 date,2020-0301");

        }
    });
}

感谢您的回复,我的输出文件中已经有了标题,但我需要添加3行关于标题的内容,比如我共享的示例VersionNo V1.0 RecordsCount 2TotalAmount 4287源id参考Loc 1 Loc 2在写入实际标头之前,您可以使用
FlatFileHeaderCallback
实现写入逻辑以获取并写入文件中的详细信息
public void writeHeader(Writer-Writer)抛出IOException{Writer.write(“VersionNo V1.0 RecordsCount 2 TotalAmount 4287”);Writer.write(“源id引用Loc 1 Loc 2”);}
您能预先计算
记录计数吗?如果是,那么您可以在头回调中或在单独的步骤中执行(这在IMO中比较简单)。