2012-03-13 2 views
4

두 개의 필드가있는 쉼표로 구분 된 파일을 읽었습니다. 파일에는 두 번째 필드가 포함되지 않을 수 있으므로 Spring DelimitedLineTokenizer는이 문제가 발생하면 불평해서는 안됩니다. 다음FlatFileItemReader를 사용하여 파일을 읽는 빈 필드를 건너 뛰는 방법은 무엇입니까?

  <property name="lineTokenizer"> 
       <bean 
        class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer"> 
        <property name="names" 
         value="planNumber, paymentAmount"> 
        </property> 
        <property name="delimiter"> 
         <value>,</value> 
        </property> 
       </bean> 
      </property> 

봄을 알리는하여 불평 않습니다

Caused by: org.springframework.batch.item.file.transform.IncorrectTokenCountException: Incorrect number of tokens found in record: expected 2 actual 1 
    at org.springframework.batch.item.file.transform.AbstractLineTokenizer.tokenize(AbstractLineTokenizer.java:123) 
    at org.springframework.batch.item.file.mapping.DefaultLineMapper.mapLine(DefaultLineMapper.java:46) 
    ... 60 more 

답변

7

false로 linetokenizer에서 다음 속성을 설정했지만 있고 StringTokenizer는

을 던져지고 예외를 피하기 ..이 도움이 될 불평하지 것이다
<property name="strict" value="false"></property> 
+1

나는 예외를 피하고 싶지 않기 때문에, 두 시나리오에서 읽을 데이터 내 솔루션은 손님 여러분 께 Tokenizer를 작성하고 AbstractLineTokenizer를 확장했습니다. – sonx

+0

데이터가 여전히 읽혀집니다 .. 데이터가 올바르지 않으면 수동으로 처리해야합니다. – Mahesh

관련 문제