【发布时间】:2019-05-11 03:38:49
【问题描述】:
我有一个包含多种格式的文本文件.....如何使用 spring 批处理阅读器读取它?
示例:文件
DATE: 09/12/2018. SERIAL NO: 12345
BANK: HDFC IFSC NO: 9876
NAME NO. OF FD. AMOUNT
ABC. 5 100
XYZ. 7 200
DEF. 7 200
JKL. 10 300
TOTAL. 29 800
REJECTED REQUEST: 1
BRANCH NAME: Atlanta
我上网的每个样本都带有标记器......在这种情况下我如何阅读它,它可能是多个记录和格式
注意***这些值将是固定长度/范围
我希望为完整报告制作的对象:
private String date;
private String Serial;
private String bank;
private String ifsc;
private List<RowData> rows;
private string totalFD;
private String totalAmount;
private String rejectedRequest;
private String branchName
上面提到的行数据对象(可变的行或记录)如下:
private String name;
private String noOfFD;
private String amount;
【问题讨论】:
-
您的情况是什么类型的项目?你说:“这些值将是固定的长度/范围”。您是否尝试过使用
FixedLengthTokenizer? -
PatternMatchingCompositeLineMapper
mapper = new PatternMatchingCompositeLineMapper(); Map tokenizers = new HashMap (); tokenizers.put("DATE*", mobilePhoneProductLineTokenizer()); tokenizers.put("NAME*", bookProductLineTokenizer()); mapper.setTokenizers(tokenizers); Map > mappers = new HashMap >(); mappers.put("DATE*", mobilePhoneProductFieldSetMapper()); mappers.put("NAME*", bookProductFieldSetMapper()); mapper.setFieldSetMappers(mappers); -
我已经使用了类似上面的东西......多个标记器和多个 FieldsetMapper ......“FieldSetMapper”正在做的是......它为每个字段 setMapper 创建不同的对象...... ...我希望将所有标记化的值放入每个文件的单个对象中......如何实现这一点?????
-
@MahmoudBenHassine 你能帮忙吗??????如果需要更多解释,请告诉我?
-
请不要在 cmets 中添加代码,您可以随时编辑问题并在那里添加代码。
I want all the value tokenized to be put into a single object for each file我不明白这怎么可能。使用PatternMatchingCompositeLineMapper,您将根据该行的匹配模式为每个行(不是文件)拥有不同的对象类型。你可以在这里找到一个例子:github.com/spring-projects/spring-batch/blob/master/…
标签: java spring-boot spring-batch filereader reader