Commons CSV 是 Apache Commons 维护的一个子项目,它用来读取和写入以逗号分隔值 (CSV) 格式的文件。在日常工作中,我们避免不了创建、解析 CSV 文件。那么,Commons CSV 库是你的不错选择。
Commons CSV 在 CSVFormat 类中预定义了最常见的 CSV 格式:
Microsoft Excel
Informix UNLOAD
Informix UNLOAD CSV
MySQL
Oracle
PostgreSQL CSV
PostgreSQL Text
RFC 4180
TDF
当然,你也可以使用 Commons CSV 提供的 API 创建自定义格式。
https://commons.apache.org/proper/commons-csv/
Commons CSV 最新版本为 1.9.0,maven 依赖如下:
<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-csv</artifactId> <version>1.9.0</version> </dependency>
(1)定义一个 CSV 文件,内容如下:
姓名,性别,年龄,部门,薪水,入职日期 张三,男,28,IT部门,15800,2018-07-10 李四,女,28,IT部门,17400,2021-08-24 王五,男,28,IT部门,17800,2020-10-12 赵六,男,28,人事部门,8400,2019-11-21 李二,男,28,人事部门,6400,2018-03-02
将上面内容保存到 demo.csv 文件,且将 demo.csv 文件放到项目的 classpath 下面(maven 项目的 resouces 目录)
(2)使用默认(CSVFormat.DEFAULT)的 CSV 格式解析 csv 文件,代码如下:
import org.apache.commons.csv.CSVFormat; import org.apache.commons.csv.CSVRecord; import java.io.FileReader; import java.io.Reader; import java.net.URL; /** * 使用默认格式解析 CSV 文件 * @author hxstrive.com 2021/12/26 */ public class CsvDemo1 { public static void main(String[] args) throws Exception { // 1.加载 csv 文件,demo.csv 文件位于 classpath 下面 URL url = CsvDemo1.class.getResource("/demo.csv"); Reader in = new FileReader(url.getFile()); // 2.解析 csv 文件 Iterable<CSVRecord> records = CSVFormat.DEFAULT.parse(in); // 3.逐一读取 csv 内容 for (CSVRecord record : records) { // 按下标的方式读取内容 System.out.printf("%s\t%s\t%s\t%s\t%s\t%s\n", record.get(0), record.get(1), record.get(2), record.get(3), record.get(4), record.get(5) ); } } }
运行结果如下:
姓名性别年龄部门薪水入职日期 张三男28IT部门158002018-07-10 李四女28IT部门174002021-08-24 王五男28IT部门178002020-10-12 赵六男28人事部门84002019-11-21 李二男28人事部门64002018-03-02
在后续文章中,将详细介绍关于 Commons CSV 更多的详细用法!!!