本篇分享讲展示如何在Groovy中读取CSV文件。
  我们可以使用Groovy中的 Apache Commons CSV库来读取CSV文件,其jar包的下载地址为: http://mvnrepository.com/arti... ,其官方文档的网址为:http://commons.apache.org/pro... . 在Groovy中,我们并不需要下载这个jar包,只需要使用@Grab()告诉程序来自动下载该jar包即可,这是Groovy语言的优点之一。
  我们将要读取的本地CSV文件:foo.csv的内容如下:

foo.csv

  以下的Groovy代码将具体展示如何使用Apache Commons CSV库来读取本地的CSV文件:

//import packages
import java.io.File 

// use @Grab() to download CSV package
@Grab('org.apache.commons:commons-csv:1.2') 
import static org.apache.commons.csv.CSVFormat.RFC4180 

// get csv file
def file = new File('/home/vagrant/foo.csv')

// read the header of csv file
def header = RFC4180.withHeader()
                    .parse(file.newReader())
                    .getHeaderMap().keySet()

// print the header               
for(item in header){
    print item
    print '\t'
}
println ''

// read records and handle data by row
RFC4180.withHeader() 
       .parse(file.newReader()) 
       .iterator().each { record ->
           def cols = record.mapping.keySet()
           for(item in cols){
               print record.get(item)
               print '\t'
           }
           println ''
       }

在以上的Groovy代码中,我们使用java的io.File来读取本地文件,使用Apache Commons CSV库来具体处理CSV文件,使用CSV文件格式的RFC4180的标准,该标准具体说明可参考网址:https://tools.ietf.org/html/r... .我们先读取该CSV文件的表头,再读取该CSV文件的数据,最后按行输出其内容。
  运行以上程序,其输出的内容如下:

输出结果

  本次分享到此结束,欢迎大家交流~~


jclian91
409 声望76 粉丝

隐约雷鸣,阴霾天空。但盼风雨来,能留你在此。


引用和评论

0 条评论