繁体   English   中英

Spring 批处理,如何将简单字符串写入文件?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM