加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Groovy学习笔记(1)读取CSV文件

发布时间:2020-12-14 16:38:11 所属栏目:大数据 来源:网络整理
导读:??本篇分享讲展示如何在Groovy中读取CSV文件。 ??我们可以使用Groovy中的 Apache Commons CSV库来读取CSV文件,其jar包的下载地址为: http://mvnrepository.com/arti...,其官方文档的网址为:http://commons.apache.org/pro... . 在Groovy中,我们并不需要

??本篇分享讲展示如何在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文件的数据,最后按行输出其内容。
??运行以上程序,其输出的内容如下:

输出结果

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读