📜  使用 OpenCSV 将 CSV 映射到 JavaBeans(1)

📅  最后修改于: 2023-12-03 14:49:44.121000             🧑  作者: Mango

使用OpenCSV将CSV映射到JavaBeans

OpenCSV是一个用Java编写的开源CSV读写库,它的主要目的是将CSV文件映射到Java对象。本文将介绍OpenCSV的基本用法及如何将CSV映射到JavaBeans。

安装OpenCSV

你可以通过Maven依赖的方式来安装OpenCSV。

<dependency>
    <groupId>com.opencsv</groupId>
    <artifactId>opencsv</artifactId>
    <version>5.0</version>
</dependency>
基本用法

读取CSV文件可以使用CSVReader类,它有多个构造函数可以选择,如下所示:

CSVReader reader = new CSVReader(new FileReader("data.csv"));

可以使用CSVWriter类来写入CSV文件。

CSVWriter writer = new CSVWriter(new FileWriter("data.csv"));

CSVReader和CSVWriter都有很多选项可以配置,比如告诉它是否应该使用第一行作为标题行等等。你可以查看OpenCSV文档来了解更多详细信息。

映射CSV到JavaBeans

OpenCSV提供了多种方式将CSV文件映射到Java对象。以下是其中一种方法。

创建JavaBean类

首先,需要创建一个JavaBean类来表示CSV文件中的数据行。以下是一个示例:

public class Person {
    private String name;
    private int age;
    private String email;

    // 省略getter和setter方法
}
在CSV文件中添加标题行

要使用OpenCSV将CSV映射到JavaBean,CSV文件需要一个标题行。这个标题行应该准确地匹配JavaBean的属性名称。

name,age,email
John,30,john@gmail.com
Mary,25,mary@yahoo.com
创建CSVToBean对象

接下来,需要创建CSVToBean对象。CSVToBean是OpenCSV中的一个实用程序类,用于将CSV文件的数据行映射到JavaBean。

CSVReader reader = new CSVReader(new FileReader("data.csv"));
ColumnPositionMappingStrategy<Person> strategy = new ColumnPositionMappingStrategy<>();
strategy.setType(Person.class);

CsvToBean<Person> csvToBean = new CsvToBeanBuilder<Person>(reader)
                        .withMappingStrategy(strategy)
                        .withSkipLines(1)
                        .withIgnoreLeadingWhiteSpace(true)
                        .build();

这个代码片段中:

  • CSVReader对象用于读取CSV文件。
  • ColumnPositionMappingStrategy实例用于指定JavaBean属性的顺序和名称。
  • CsvToBeanBuilder从逐行读取CSV数据并将其转换为JavaBean。
读取CSV数据并映射为JavaBean对象

最后,只需像下面这样使用CSVToBean对象即可将CSV映射为JavaBean。

List<Person> persons = csvToBean.parse();

这个代码片段将读取CSV文件的所有数据行,并将每行转换为一个JavaBean Person 对象。

总结

本文介绍了OpenCSV的基本用法,并演示了如何使用它将CSV文件映射到JavaBeans。OpenCSV还有很多其他的特性和选项,如果想深入了解,建议读一下官方文档。