2012-03-13 192 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> 

Spring並不是抱怨

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 

的StringTokenizer不會抱怨雖然

回答

7

設置linetokenizer以下屬性設置爲false ..這將有助於避免被拋出

異常
<property name="strict" value="false"></property> 
+1

因爲我不想避免例外,我需要要在兩種情況下讀取數據。我的解決方案是寫一個客戶Tokenizer和擴展AbstractLineTokenizer – sonx 2012-03-15 14:26:03

+0

數據仍然會被讀取..如果數據讀取無效,您將需要手動處理它。 – Mahesh 2012-03-18 10:41:12

相關問題