I am trying to read the entire column of a csv into my Spring Batch reader, however I am getting an error because one of my fields have an whitespace and period, so my code does not works as expect. How can I fix my lineMapper to work also with fields that has an whitespace and period?
Example of csv:
"Name","Last name", "Date","Street. Name"
"test_name", "abc", "2010.10.02", "street test"
Code:
@Configuration
public class testReader{
@Bean("testReader)
public FlatFileItemReader<TestDTO> csvFileReader() {
FlatFileItemReader<TestDTO> reader = new FlatFileItemReader<>();
Resource file = csvFileResource();
reader.resource(file)
reader.linesToSkip(1) // Skip header row if needed
reader.lineMapper(csvLineMapper())
return reader;
}
@Bean
public DefaultLineMapper<TestDTO> csvLineMapper() {
DelimitedLineTokenizer tokenizer = new DelimitedLineTokenizer();
tokenizer.setNames("Name","Last name", "Date","Street. Name");
BeanWrapperFieldSetMapper<YourDataClass> fieldSetMapper = new BeanWrapperFieldSetMapper<>();
fieldSetMapper.setTargetType(TestDTO.class);
DefaultLineMapper<TestDTO> lineMapper = new DefaultLineMapper<>();
lineMapper.setLineTokenizer(tokenizer);
lineMapper.setFieldSetMapper(fieldSetMapper);
return lineMapper;
}
@Bean
public Resource[] csvFileResource() throws IOException {
// Specify the folder path where your CSV files are generated
Resource[] resources = new PathMatchingResourcePatternResolver().getResources("file:input/*.csv");
if (resources.length == 0) {
throw new FileNotFoundException("No CSV files found in the specified folder.");
}
return resources;
}
}
Error:
Parse error