![](/img/trans.png)
[英]Spring batch FlatFileItemWriter write as csv from Object
[英]Spring Batch - FlatFileItemWriter write to a file, close it, write to new file
因此,我有一个自定义类,该类扩展了我用来编写CSV文件的FlatFileItemWriter。 根据某些条件,我想完成第一个文件,然后写入新文件。 有没有办法用FlatFileItemWriter做到这一点?
这是我的代码示例:
@Override
public void write(List<? extends MyObject> items) throws Exception {
ExecutionContext stepContext = this.stepExecution.getExecutionContext();
int currentFileIncrememnt = (int) stepContext.get("currentFileIncrement");
if(currentFileIncrement== fileIncrement) {
super.write(items);
}
else {
super.close();
fileIncrement = currentFileIncrement;
super.setHeaderCallback(determineHeaderCallback());
super.setResource(new FileSystemResource("src/main/resources/" + fileIncrement+ ".csv"));
super.setShouldDeleteIfExists(true);
DelimitedLineAggregator<MyObject> delLineAgg = new DelimitedLineAggregator<>();
delLineAgg.setDelimiter(",");
BeanWrapperFieldExtractor<MyObject> fieldExtractor = new BeanWrapperFieldExtractor<>();
fieldExtractor.setNames(new String[] {"id", "amount"});
delLineAgg.setFieldExtractor(fieldExtractor);
super.setLineAggregator(delLineAgg);
super.write(items);
}
}
我不知道您使用的是定制作家还是春季作家。 如果您使用自定义(可能是从第一代开始的扩展),则可以通过在处理器,读取器或映射器中传递参数来使用所需的内容。 如果要使用Spring编写器,则应执行隔离步骤。 给出更多细节。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.