天天看点

commons-csv读取csv文件

1 背景

实际工作中,很多数据都存在csv文件中,使用 java语言开发的时候,有的时候需要读取文件,或者将csv文件导入到数据库中。commons-csv作为三方类库,简化了读取操作

2 应用

2.1 引入pom

文章使用1.9.0版本

<dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-csv</artifactId>
            <version>1.9.0</version>
  </dependency>      

2.2 API应用

2.2.1 关于表头的思考

什么是表头,注明每一列数据代表的含义,这个很重要

csv文件有两种关于表头的应用,或者可以说玩法

csv文件第一行是表头

csv表头放在其它文件

2.2.2 csv文件第一行是表头

map就是一行数据 key是列名, value是具体的值,接下来你可以根据自己的业务处理了

File file = new File(csv);
  CSVFormat format = CSVFormat.DEFAULT.withHeader();
  InputStreamReader isr = new InputStreamReader(new FileInputStream(f), "UTF-8");
  CSVParser records = new CSVParser(isr, format);
  for (CSVRecord record : records) {
    Map<String, String> map = record.toMap();
  }      

2.2.3 csv表头放在其它文件

File file = new File(csv);
InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(file),"UTF-8");
Iterable<CSVRecord> records = CSVFormat.RFC4180.withHeader("表头").parse(inputStreamReader);
for (CSVRecord csvRecord : records) {
  Map<String, String> map = csvRecord.toMap();                                         
}