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