📅  最后修改于: 2023-12-03 15:00:10.301000             🧑  作者: Mango
CSV(Comma-Separated Values,逗号分隔值)是一种常用的文件格式,用于存储数值。它采用纯文本格式,能够轻易地被导入和导出,也可以被多种类型的软件读取和修改。在 Java 中,你可以使用多种方法来读取和写入 CSV 格式的文件,比如使用 Java 原生的库,或者使用第三方库,如 Apache Commons CSV,OpenCSV。以下是 Java 中使用 CSV 文件的示例。
使用 Java 原生库中的 Scanner 类,你可以轻松读取 CSV 格式的文件。下面是一个读取 CSV 文件并将其打印的示例:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class ReadCSVFile {
public static void main(String[] args) {
try {
File csvFile = new File("file.csv");
Scanner scanner = new Scanner(csvFile);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
String[] values = line.split(",");
for (String value: values) {
System.out.print(value + " ");
}
System.out.println();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
这个例子中,我们创建了一个 Scanner 对象,然后使用它逐行读取 CSV 文件。接下来,我们使用 split() 方法,将每一行分割成一个字符串数组,并在控制台上输出。
Apache Commons CSV 组件是开发 CSV 文件处理的一种快速而灵活的方法。它提供了可扩展的 API,可以处理所有基本和高级的 CSV 文件。
Apache Commons CSV 分为 3 部分:
以下是一个使用 Apache Commons CSV 将 CSV 文件解析成 Java 对象的示例:
import java.io.FileReader;
import java.io.IOException;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;
public class ReadCSVFileWithApacheCommonsCSV {
public static void main(String[] args) {
try {
FileReader fileReader = new FileReader("file.csv");
CSVParser csvParser = new CSVParser(fileReader, CSVFormat.DEFAULT);
for (CSVRecord csvRecord : csvParser) {
String name = csvRecord.get(0);
String address = csvRecord.get(1);
String phone = csvRecord.get(2);
String email = csvRecord.get(3);
System.out.println("Name : " + name);
System.out.println("Address : " + address);
System.out.println("Phone : " + phone);
System.out.println("Email : " + email);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
这个例子中,我们创建了一个 FileReader 对象,然后使用 CSVParser 类,将文件解析成 CSVRecord 对象。接下来,我们可以使用成员方法,如 get() 和 size(),从每个 CSVRecord 对象中获取特定的值。在控制台上打印每个值。
OpenCSV 是另一种可用于读写 CSV 文件的流行的开源库。它的优点是它明确地支持多种 CSV 模板。
以下是一个使用 OpenCSV 读取 CSV 文件的示例:
import com.opencsv.CSVReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadCSVFileWithOpenCSV {
public static void main(String[] args) {
try {
CSVReader reader = new CSVReader(new FileReader("file.csv"));
String[] line;
while ((line = reader.readNext()) != null) {
for (String value: line) {
System.out.print(value + " ");
}
System.out.println();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
这个例子中,我们创建了一个 CSVReader 对象,并在 while 循环中使用它逐行读取 CSV 文件,然后使用 for 循环将每行分割成值,并在控制台上输出。
Java 提供了很多方法来操作 CSV 文件,你可以使用原生库或第三方库。使用这些库,你可以轻松地从 CSV 文件中读取和写入数据。在选择库时,你需要考虑许多因素,如功能和性能。最好根据你的需求选择最适合你的库。