Java – read the newline character in CSV, which is referenced in the file in flatfileitemreader of spring batch
•
Java
I tried to parse CSV files with flatfileitemreader This CSV contains some referenced line breaks, as shown below
email,name abc@z.com,"NEW NAME ABC"
However, the parsing failed. The required field is 2, but the actual field is 1
What am I missing in the flatfilereader configuration?
<property name="lineMapper"> <bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper"> <!-- The lineTokenizer divides individual lines up into units of work --> <property name="lineTokenizer"> <bean class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer"> <!-- Names of the CSV columns --> <property name="names" value="email,name" /> </bean> </property> <!-- The fieldSetMapper maps a line in the file to a Product object --> <property name="fieldSetMapper"> <bean class="com.abc.testme.batchjobs.util.CustomerFieldSetMapper" /> </property> </bean> </property>
Solution
The out of the box flatfileitemreader uses simplerecordseparatorpolicy as your use case
>The comment section exceeds 2 or more lines
You need to set defaultrecordseparatorpolicy
Javadoc referencing it:
Sample XML configuration
<bean id="reader" class="org.springframework.batch.item.file.FlatFileItemReader"> ... <property name="recordSeparatorPolicy"> <bean class="org.springframework.batch.item.file.separator.DefaultRecordSeparatorPolicy" /> </property> ... </bean>
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码