I\'ve a fixed length content Flatfile which contains sample records like below and has no delimiter as such it contains special hex characters and
You can utilize the isStrict flag to get read of this issue - use the tokenizer separately and your issue will be solved
I have implemented - fixedLengthTokenizer as below
@Value("classpath:mainframe.txt")
private Resource resource;
@Bean
public FlatFileItemReader fixLengthItemReader(){
FlatFileItemReader reader = new FlatFileItemReader();
reader.setResource(resource);
reader.setLineMapper(new DefaultLineMapper() {
{
setLineTokenizer(fixedLengthTokenizer());
setFieldSetMapper(new BeanWrapperFieldSetMapper() {
{
setTargetType(Customer.class);
}
});
}
});
return reader;
}
@Bean
public FixedLengthTokenizer fixedLengthTokenizer() {
FixedLengthTokenizer tokenizer = new FixedLengthTokenizer();
tokenizer.setColumns(new Range[] { new Range(3, 6), new Range(7, 13), new Range(14, 15), new Range(14, 15) });
tokenizer.setNames(new String[] { "firstValue", "secondValue", "thirdValue", "fourthValue" });
tokenizer.setStrict(false);
return tokenizer;
}
Note - do remember to set this flag --> tokenizer.setStrict(false);