怎样获取item的字符Java_java – ItemReader返回包含整行作为字符串的...

使用Spring Batch我试图将输入文件的每一行都作为一个String,将它提供给ItemProcessor而不在ItemReader中进行任何“CSV解析”.

我推出了一个配置Java类(使用@Configuration和@EnableBatchProcessing),其中包含以下reader()方法,该方法使下一个ItemProcessor抛出ClassCastException.

此ItemReader应读取输入文件,并将输入文件的每一行作为String传递给ItemProcessor.

@Bean

public ItemReader reader() {

FlatFileItemReader reader = new FlatFileItemReader<>();

reader.setResource(new ClassPathResource("data-to-process.txt"));

reader.setLineMapper(new DefaultLineMapper() {{

setLineTokenizer(new DelimitedLineTokenizer());

setFieldSetMapper(new PassThroughFieldSetMapper());

}});

return reader;

}

运行前面的代码时,我在ItemProcessor中得到一个异常,它期待来自reader()的String:

java.lang.ClassCastException: org.springframework.batch.item.file.transform.DefaultFieldSet cannot be cast to java.lang.String

我写的自定义ItemProcessor定义为:

public class MyOwnCustomItemProcessor implements ItemProcessor {

我相信我应该在ItemReader中使用这个PassThroughFieldSetMapper,我不想使用任何类型的tokenizer.根据文档,我认为我必须使用它,我无法避免它,但我一直在抛出异常.

如何将每个输入行作为String直接“传送”到ItemProcessor,例如?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值