我想通过在自定义编写器调用中实现标题回调和footercallback来在自定义书写器中添加页眉和页脚。带有FooterCallback和Header回调的Spring批量自定义书写器
写入方法成功。但是写头和writefooter不会被调用。
public class CustomOAFileItemWriter extends StepExecutionListenerSupport implements ItemWriter<OAExtract>,FlatFileHeaderCallback,FlatFileFooterCallback{
public void write(List<? extends OAExtract> oaExtractList) throws Exception {
FileOutputStream fs = new FileOutputStream("C:\\archivedFiles\\out.bin");
}
public void writeHeader(Writer writer) throws IOException {
System.out.println("Writing Header record");
}
public void writeFooter(Writer writer) throws IOException {
System.out.println("Writing Footerrecord");
}
Spring批处理体验的人可以帮助我吗?
感谢, 清莱
检查FlatFileItemWriter代码,并期待在这些回调被调用。我想,它们是从打开和关闭方法(ItemStream接口)调用的。所以,这是FlatFileItemWriter类本身的一个特性,而不是一般的框架特性。这意味着,你必须在自己的作家中实现自己。 –
我试图修改FlatFileItemWriter的写入字节的实现。 但outputBufferWriter只写入String,int和char []。 我需要写一个字节{}。你能帮忙吗? 公共无效写入(字节[] BS)抛出IOException异常{ \t \t \t如果(初始化!){ \t \t \t \t initializeBufferedWriter(); \t \t \t} \t \t \t outputBufferedWriter.write(BS); \t \t \t outputBufferedWriter.flush(); \t \t} –
这实际上是一个与TransactionAwareBufferedWriter弹簧问题。 这不包含可以写入字节的方法。 –