[SPRING] Spring Batch로 여러 열의 CSV 파일을 읽는 법
SPRINGSpring Batch로 여러 열의 CSV 파일을 읽는 법
다음과 같이 고정 된 수의 열이없는 CSV 파일이 있습니다.
col1,col2,col3,col4,col5
val1,val2,val3,val4,val5
column1,column2,column3
value1,value2,value3
Spring Batch와 함께 이런 종류의 CSV 파일을 읽을 방법이 있습니까?
나는 이것을 시도했다 :
<bean id="ItemReader" class="org.springframework.batch.item.file.FlatFileItemReader">
<!-- Read a csv file -->
<property name="resource" value="classpath:file.csv" />
<property name="lineMapper">
<bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">
<!-- split it -->
<property name="lineTokenizer">
<bean
class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
<property name="names"
value="col1,col2,col3,col4,col5,column1,column2,column3" />
</bean>
</property>
<property name="fieldSetMapper">
<bean
class="org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper">
<property name="prototypeBeanName" value="myBean" />
</bean>
</property>
</bean>
</property>
</bean>
그러나 그 결과는 다음과 같습니다.
해결법
-
==============================
1.PatternMatchingCompositeLineMapper를 사용하면 패턴에 따라 라인 당 적절한 LineMapper 구현에 위임 할 수 있습니다. 거기에서 각 대리자는 DelimtedLineTokenizer와 FieldSetMapper를 사용하여 그에 따라 줄을 매핑합니다.
PatternMatchingCompositeLineMapper를 사용하면 패턴에 따라 라인 당 적절한 LineMapper 구현에 위임 할 수 있습니다. 거기에서 각 대리자는 DelimtedLineTokenizer와 FieldSetMapper를 사용하여 그에 따라 줄을 매핑합니다.
이에 대한 자세한 내용은 다음 문서를 참조하십시오. http://docs.spring.io/spring-batch/trunk/apidocs/org/springframework/batch/item/file/mapping/PatternMatchingCompositeLineMapper.html
-
==============================
2.AbstractLineTokenizer # DelimitedLineTokenizer의 setStrict (boolean)가 작업을 수행해야합니다.
AbstractLineTokenizer # DelimitedLineTokenizer의 setStrict (boolean)가 작업을 수행해야합니다.
javadoc에서 :
구성의이 부분을 다음과 같이 변경해야합니다.
<bean class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer"> <property name="names" value="col1,col2,col3,col4,col5,column1,column2,column3" /> <property name="strict" value="false" /> </bean>
from https://stackoverflow.com/questions/45501777/how-to-read-csv-file-with-different-number-of-columns-with-spring-batch by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 최대 절전 모드에서 예외를 throw하지 않는 DB 제약 위반 (0) | 2019.05.04 |
---|---|
[SPRING] spring-data-couchbase를 사용하고 있지만 메서드 이름의 쿼리 작성이 작동하지 않습니다. (0) | 2019.05.04 |
[SPRING] 'hibernate.dialect'가 설정되지 않았을 때 연결은 null 일 수 없다. hibernate4 tomcat7 (0) | 2019.05.04 |
[SPRING] Spring Boot Application에서 Angular 클라이언트가 여러 개인 RequestMapping 문제 (0) | 2019.05.04 |
[SPRING] 봄 mvc에서 정적 콘텐츠를 제공하는 방법? (0) | 2019.05.04 |