2017-08-04 118 views
0

我有沒有列固定數量的CSV文件,像這樣:如何讀取CSV文件具有不同的列數與Spring Batch的

col1,col2,col3,col4,col5  
    val1,val2,val3,val4,val5 
    column1,column2,column3 
    value1,value2,value3 

有什麼辦法讀取這種用Spring批處理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> 

但結果卻是這樣的錯誤:

IncorrectTokenCountException stack trace

+0

看看了'AbstractLineTokenizer#setStrict(布爾)'(其中'DelimitedLineTokenizer'從繼承),並將其設置爲'FALSE'。 – fateddy

+0

這種方法不起作用:( – marie

回答

相關問題