Fixed Length FlatFile ItemWriter에서 한글데이터 쓰기
- 작성자 :
- 김*수
- 작성일 :
- 2013-08-07 14:02:07
- 조회수 :
- 1,221
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
수고하십니다.
배치처리에서 Fixed Length FlatFile ItemWriter를 이용하여 파일 인코딩이 ANSI인 파일 데이터를 쓰고자 합니다.
다음과 같이 스텝을 정의 했습니다.
<bean id="fixedLengthToFixedLength2Job.fixedLengthToFixedLength2Step.formatItemWriter"
class="org.springframework.batch.item.file.FlatFileItemWriter" scope="step">
<property name="resource" value="#{jobParameters[outputFile]}" />
<property name="encoding" value="MS949" />
<property name="lineAggregator">
<bean class="egovframework.brte.core.item.file.transform.EgovFixedLengthLineAggregator">
<property name="fieldExtractor">
<bean class="egovframework.brte.core.item.file.transform.EgovFieldExtractor">
<property name="names" value="item1,item2,item3,item4" />
</bean>
</property>
<property name="fieldRanges" value="14,13,60,66" />
</bean>
</property>
</bean>
fieldRanges의 값이 한글의 경우 한글 1자를 1로 계산해서 생성되네요.
EgovFixedByteLengthTokenizer 처럼 바이트 단위로 계산되게 할 수는 없나요?
배치처리에서 Fixed Length FlatFile ItemWriter를 이용하여 파일 인코딩이 ANSI인 파일 데이터를 쓰고자 합니다.
다음과 같이 스텝을 정의 했습니다.
<bean id="fixedLengthToFixedLength2Job.fixedLengthToFixedLength2Step.formatItemWriter"
class="org.springframework.batch.item.file.FlatFileItemWriter" scope="step">
<property name="resource" value="#{jobParameters[outputFile]}" />
<property name="encoding" value="MS949" />
<property name="lineAggregator">
<bean class="egovframework.brte.core.item.file.transform.EgovFixedLengthLineAggregator">
<property name="fieldExtractor">
<bean class="egovframework.brte.core.item.file.transform.EgovFieldExtractor">
<property name="names" value="item1,item2,item3,item4" />
</bean>
</property>
<property name="fieldRanges" value="14,13,60,66" />
</bean>
</property>
</bean>
fieldRanges의 값이 한글의 경우 한글 1자를 1로 계산해서 생성되네요.
EgovFixedByteLengthTokenizer 처럼 바이트 단위로 계산되게 할 수는 없나요?
A
안녕하십니까. 표준프레임워크 센터입니다.
말씀하신대로 EgovFixedLengthLineAggregator를 사용하실 경우 한글 한 자를 1로 계산해서 처리하며
비즈니스 로직을 처리하는 데에는 문제가 없습니다.
ItemWriter를 커스터마이징하여 구현하는 방법을 고려해 보시기 바랍니다.
요청하신 기능은 추후 버전 업그레이드 시 참고하겠습니다.
업무에 참고하시기 바랍니다.
말씀하신대로 EgovFixedLengthLineAggregator를 사용하실 경우 한글 한 자를 1로 계산해서 처리하며
비즈니스 로직을 처리하는 데에는 문제가 없습니다.
ItemWriter를 커스터마이징하여 구현하는 방법을 고려해 보시기 바랍니다.
요청하신 기능은 추후 버전 업그레이드 시 참고하겠습니다.
업무에 참고하시기 바랍니다.