CSV解析器默认跳过空单元格

时间:2014-02-20 15:21:59

标签: csv groovy opencsv

这是我的csv

0|A0|B0||D0
1|A1|B1|C1|D1

这是我正在使用的csvParser

 file.eachLine() { line ->
                if (!line.startsWith("0")) {
                    def field = line.tokenize("|")
                    lineCount++
                    closure(lineCount,field)
                }
                else{   
                }
            }

所以在CSV的第一行它没有C),我怎么能说读空行呢。

2 个答案:

答案 0 :(得分:2)

tokenize丢弃空标记并返回List<String>,尝试使用split而不是返回String[]并且不会丢弃它们(请参阅here }其他差异)

或使用类似GroovyCSV之类的东西,将疼痛转移到别人的肩膀上; - )

答案 1 :(得分:1)

这也可以解决问题:

file.splitEachLine( /\|/ ){ String[] parts ->
  if( '0' != parts[ 0 ] ){
    //do something with parts
  }else{}
}

上帝保佑时髦! :)