利用JavaCSV API来读写csv文件
1 背景
CSV文件的读写其实是有很多方法的,在这里介绍一种利用第三方jar包来读写CSV文件的方法。
日常工作中,如果有现成的第三方工具包,咱最好还是用现成的,有利于提升效率及降低异常率,成熟的三方工具包比较靠谱。
2 JavaCSV API
maven依赖
<!-- https://mvnrepository.com/artifact/net.sourceforge.javacsv/javacsv -->
<dependency>
<groupId>net.sourceforge.javacsv</groupId>
<artifactId>javacsv</artifactId>
<version>2.1</version>
</dependency>
API 说明文档:
JavaCSV官网:
3 代码实现
3.1 读操作
public static void read(){
String filePath = "XXX.csv";
try {
// 创建CSV读对象
CsvReader csvReader = new CsvReader(filePath);
// 读表头
csvReader.readHeaders();
while (csvReader.readRecord()){
// 读一整行
System.out.println(csvReader.getRawRecord());
// 读这行的某一列
System.out.println(csvReader.get("Link"));
}
} catch (IOException e) {
e.printStackTrace();
}
}
3.2 写操作
public static void write(){
String filePath = "/Users/dddd/test.csv";
try {
// 创建CSV写对象
CsvWriter csvWriter = new CsvWriter(filePath,,, Charset.forName("GBK"));
//CsvWriter csvWriter = new CsvWriter(filePath);
// 写表头
String[] headers = {
"编号","姓名","年龄"};
String[] content = {
"12365","张山","34"};
csvWriter.writeRecord(headers);
csvWriter.writeRecord(content);
csvWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
4 最新建议
[2019-05-16] 近来收到网友反馈,2.1版本已经在maven库中找不到了,这是事实。Javacsv最近一次更新是2014年12月,不过官网是可以下载到这个版本的依赖包,需要用的话,可以自行下载然后手动导入到本地库及所在企业的私有库。鉴于javacsv已经有4年半了没有更新了,推荐关于excel或csv操作时,可以使用阿里巴巴的easyexcel库https://github.com/alibaba/easyexcel,这个库目前还有人在维护。
