JavaCSV之读CSV文件
Java在进行数据处理,有时候难免有进行CSV文件的操作,这里采用了JavaCSV读CSV文件。
1.准备工作
(1)第三方包库下载地址:https://sourceforge.net/projects/javacsv
(2)相关文档:http://javacsv.sourceforge.net
2.使用简单的读操作
(1)引入javacsv包相应的类
import com.csvreader.CsvReader;
(2)创建文件路径
String file = "src/com/test/csv/test.csv"; // 注意路径,这里是相对路径
(3)创建CSV读对象
// 创建CSV读对象(文件路径,分隔符,编码格式) CsvReader csvReader = new CsvReader(file, ',', Charset.forName("UTF-8"));
(4)设置标题(非常重要),可以理解为把第一行设置为标题,如果不设置,csvReader.readRecord()将从标题行开始读取,因此有关标题、列的函数将无法使用,如getHeaders()、get("字段名")
csvReader.readHeaders();
(5)读取
while (csvReader.readRecord()){ // 读一整行 System.out.println(csvReader.getRawRecord()); // 读某一列 System.out.println(csvReader.get("id")); }
(6)关闭
// 关闭 csvReader.close();
csv文件(test.csv):
测试(demo.java):
1 package com.test.csv; 2 3 import com.csvreader.CsvReader; 4 import java.io.IOException; 5 import java.nio.charset.Charset; 6 7 public class demo { 8 public static void main(String[] args) { 9 String file = "src/com/test/csv/test.csv"; 10 11 try { 12 // 创建CSV读对象(文件路径,分隔符,编码格式) 13 CsvReader csvReader = new CsvReader(file, ',', Charset.forName("UTF-8")); 14 15 // 跳过表头 如果需要表头的话,这句可以忽略 16 csvReader.readHeaders(); // 可以理解为把第一行设置为标题,如果不设置,将无法使用getHeaders()、get("id") 17 18 while (csvReader.readRecord()){ 19 // 读一整行 20 System.out.println(csvReader.getRawRecord()); 21 22 } 23 24 // 关闭 25 csvReader.close(); 26 27 } catch (IOException e) { 28 e.printStackTrace(); 29 } 30 31 } 32 }
截图:
3.相关函数
查看:http://javacsv.sourceforge.net/
(1)获取标题,返回时String数组
// 1.获取标题,返回时String数组 csvReader.getHeaders(); // 输出 for(String s : headerList){ System.out.println(s); }
(2)获取列数
// 获取列数 csvReader.getHeaderCount();