2017-08-04 126 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

回答

相关问题