📅  最后修改于: 2023-12-03 15:22:15.086000             🧑  作者: Mango
CSV(Comma-separated values)是一种常见的电子表格文件格式,通常用于存储和交换数据。在 Java 中,可以使用 OpenCSV 库来轻松地读取和编写 CSV 文件。
首先,在 pom.xml 文件中添加以下依赖:
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>5.5.2</version>
</dependency>
要编写 CSV 文件,可以使用 CSVWriter 类。以下是一个示例:
import com.opencsv.CSVWriter;
import java.io.FileWriter;
import java.io.IOException;
public class CsvWriterExample {
public static void main(String[] args) throws IOException {
String csvFile = "example.csv";
FileWriter writer = new FileWriter(csvFile);
CSVWriter csvWriter = new CSVWriter(writer,
CSVWriter.DEFAULT_SEPARATOR,
CSVWriter.DEFAULT_QUOTE_CHARACTER,
CSVWriter.DEFAULT_ESCAPE_CHARACTER,
CSVWriter.DEFAULT_LINE_END);
String[] headerRecord = {"Name", "Age", "Country"};
csvWriter.writeNext(headerRecord);
csvWriter.writeNext(new String[]{"John Doe", "30", "USA"});
csvWriter.writeNext(new String[]{"Jane Doe", "25", "Canada"});
csvWriter.close();
}
}
在这个示例中,我们建立了一个名为“example.csv”的 CSV 文件,并使用 CSVWriter 类来编写数据。首先,我们指定了文件的标题行(Name,Age 和 Country)。然后,我们将每个人的姓名,年龄和国家作为一个新的行写入文件。
注意,我们在创建 CSVWriter 对象时设置了一些默认值,例如分隔符(逗号)和引号字符(双引号)。
OpenCSV 可以处理许多不同的 CSV 文件格式,包括支持引号分隔符,支持多行标题行,支持不同的换行符等。还有其他一些选项,可用于读取和编写 CSV 文件。
例如,如果您要读取 CSV 文件,可以使用 CSVReader 类,如下所示:
import com.opencsv.CSVReader;
import java.io.FileReader;
import java.io.IOException;
public class CsvReaderExample {
public static void main(String[] args) throws IOException {
String csvFile = "example.csv";
FileReader reader = new FileReader(csvFile);
CSVReader csvReader = new CSVReader(reader,
CSVReader.DEFAULT_SEPARATOR,
CSVReader.DEFAULT_QUOTE_CHARACTER,
CSVReader.DEFAULT_ESCAPE_CHARACTER,
1);
String[] nextRecord;
while ((nextRecord = csvReader.readNext()) != null) {
System.out.println(nextRecord[0] + ", "
+ nextRecord[1] + ", "
+ nextRecord[2]);
}
csvReader.close();
}
}
在这个示例中,我们通过 CSVReader 类读取 CSV 文件。我们指定了标题行的行号为 1,表明文件的第一行是标题行。然后,我们可以循环读取每一行,并访问每个单元格的值。
OpenCSV 是 Java 中使用 CSV 文件的一个简单而强大的库。它提供了许多选项和配置,使您可以轻松地读取和编写 CSV 文件。如果您需要在 Java 中处理 CSV 文件,我建议尝试使用 OpenCSV。