1 回答
TA贡献1827条经验 获得超8个赞
发生的情况是,作为分隔符的空字符串被忽略,最终得到默认分隔符“,”。我认为这是 Spring Batch 中的一个错误,因为当您直接在编写器中设置空分隔符而不使用构建器时,不会发生这种情况。请打开一个问题并引用此问题,我们将解决它。
请让我知道如何在没有任何分隔符的情况下按原样编写字段值。
同时,您可以使用以下应该有效的方法:
@Bean(name = "myWriter")
public FlatFileItemWriter<Customer> bondEdgeFlatFileItemWriter() {
BeanWrapperFieldExtractor<Customer> fieldExtractor = new BeanWrapperFieldExtractor<>();
fieldExtractor.setNames(new String[] {"customerId", "customerName" });
DelimitedLineAggregator<Customer> lineAggregator = new DelimitedLineAggregator<>();
lineAggregator.setDelimiter("");
lineAggregator.setFieldExtractor(fieldExtractor);
return new FlatFileItemWriterBuilder<Customer>()
.name("myWriter")
.resource(new FileSystemResource("customers.txt"))
.lineAggregator(lineAggregator)
.build();
}
添加回答
举报