![](/img/trans.png)
[英]How do I write a header and trailer to an existing file using spring batch without overwriting the information in that file?
[英]Spring batch, how do I write simple strings into a file?
我是 spring 批次的新手,到目前为止,我已经研究了如何从 csv、xml、json 文件或数据库中获取对象列表作为输入,并在外部文件或数据库中写下相同的 Object。 但是我刚刚意识到我不知道如何使用 output 简单字符串,例如我制作了这个简单的处理器:
public class ProductProcessorObjToStr implements ItemProcessor<Product,String> {
@Override
public String process(Product product) throws Exception {
return product.getProductName();
}
}
这样我就得到了一个简单的名称列表,但我不知道如何创建正确的项目编写器。 我研究了这些类型的作家,其中我 map 各种 Object 领域:
@Bean
@StepScope
public FlatFileItemWriter flatFileItemWriter(@Value("#{jobParameters['outputFile']}") FileSystemResource outputFile){
FlatFileItemWriter writer = new FlatFileItemWriter<Product>();
writer.setResource(outputFile);
writer.setLineAggregator(new DelimitedLineAggregator(){
{
setDelimiter("|");
setFieldExtractor(new BeanWrapperFieldExtractor(){
{
setNames(new String[]
{"productID","productName","productDesc","price","unit"});
}
});
}
});
writer.setHeaderCallback(new FlatFileHeaderCallback() {
@Override
public void writeHeader(Writer writer) throws IOException {
writer.write("productID,productName,ProductDesc,price,unit");
}
});
writer.setFooterCallback(new FlatFileFooterCallback() {
@Override
public void writeFooter(Writer writer) throws IOException {
//scrivo il footer
writer.write("****** File created at " + new SimpleDateFormat().format(new
Date()) + " ******");
}
});
return writer;
}
我为字符串使用哪个编写器以及如何创建它? 预先感谢您的建议。 祝你今天过得愉快。
对于这种情况,我认为java.io.PrintWriter
应该这样做,如果需要,您可以使用方法printLn()
在一行中打印字符串,如果您想编写 object 然后读取它并将其加载到您的应用程序中使用java.io.ObjectOutputStream
to write your object then use java.io.ObjectInputStream
to read it and load it to an instance of your object note that you should implement java.io.Serializable
to use it.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.