📅  最后修改于: 2023-12-03 15:22:15.110000             🧑  作者: Mango
OpenCSV 是一个轻量级的 Java 库,用于操作 CSV 文件。它提供了一个简单易用的方式将 Java 对象映射到 CSV 表格中,或将 CSV 表格映射到 Java 对象中。
本文将介绍如何使用 OpenCSV 将 Java Bean 映射到 CSV。
在开始之前,需要在项目中添加 OpenCSV 的依赖。
Maven 依赖:
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>5.3</version>
</dependency>
Gradle 依赖:
implementation 'com.opencsv:opencsv:5.3'
首先,我们需要创建一个 Java Bean,用于和 CSV 表格进行映射。假设我们要映射的 CSV 表格长这个样子:
Name,Age,City
John,25,New York
Jane,30,San Francisco
那么对应的 Java Bean 可以这样定义:
public class Person {
private String name;
private int age;
private String city;
public Person() {}
public Person(String name, int age, String city) {
this.name = name;
this.age = age;
this.city = city;
}
// getter 和 setter 方法省略
}
接下来,我们要把这个 Java Bean 中的数据写入到 CSV 文件中。代码如下:
import com.opencsv.CSVWriter;
import java.io.FileWriter;
import java.io.IOException;
public class WriteCsvExample {
public static void main(String[] args) throws IOException {
CSVWriter writer = new CSVWriter(new FileWriter("output.csv"));
// 写入表头
writer.writeNext(new String[] {"Name", "Age", "City"});
// 写入数据行
writer.writeNext(new String[] {"John", "25", "New York"});
writer.writeNext(new String[] {"Jane", "30", "San Francisco"});
writer.close();
}
}
这里使用了 CSVWriter 类来操作 CSV 文件。首先,我们需要创建一个 CSVWriter 对象,指定输出文件的路径;然后,我们可以使用 writeNext() 方法将表头和数据行写入到文件中。
读取 CSV 文件同样简单,代码如下:
import com.opencsv.CSVReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadCsvExample {
public static void main(String[] args) throws IOException {
CSVReader reader = new CSVReader(new FileReader("input.csv"));
// 读取表头
String[] header = reader.readNext();
// 读取数据行
String[] line;
while ((line = reader.readNext()) != null) {
Person person = new Person(line[0], Integer.parseInt(line[1]), line[2]);
System.out.println(person.toString());
}
reader.close();
}
}
这里使用了 CSVReader 类来读取 CSV 文件。我们需要通过 readNext() 方法来逐行读取文件内容,每行的数据保存在一个 String 数组中。和写入 CSV 文件一样,读取也需要一个循环,将每行数据转换成对应的 Java 对象即可。
通过本文的介绍,我们了解了如何使用 OpenCSV 将 Java Bean 映射到 CSV。相比于使用原始的流操作,OpenCSV 提供了更加便捷的方式来读写 CSV 文件,可以使我们的代码更加简洁明了。