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();
}
添加回答
舉報