在 Java 中解析 CSV 文件有多种方式,我将为您介绍以下三种常用的方法,包括使用原生 Java、OpenCSV 库和 Apache Commons CSV 库。
步骤流程:
示例代码:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class NativeCSVParser {
public static void main(String[] args) {
String csvFile = "path/to/your/csvfile.csv";
try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) {
String line;
while ((line = br.readLine()) != null) {
String[] fields = line.split(",");
// 处理每个字段,例如:System.out.println(Arrays.toString(fields));
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
步骤流程:
Maven 依赖:
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>5.5.2</version>
</dependency>
Gradle 依赖:
implementation 'com.opencsv:opencsv:5.5.2'
示例代码:
import com.opencsv.CSVReader;
import com.opencsv.exceptions.CsvException;
import java.io.FileReader;
import java.io.IOException;
import java.util.List;
public class OpenCSVParser {
public static void main(String[] args) {
String csvFile = "path/to/your/csvfile.csv";
try (CSVReader reader = new CSVReader(new FileReader(csvFile))) {
List<String[]> lines = reader.readAll();
for (String[] line : lines) {
// 处理每行数据,例如:System.out.println(Arrays.toString(line));
}
} catch (IOException | CsvException e) {
e.printStackTrace();
}
}
}
步骤流程:
Maven 依赖:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.9.0</version>
</dependency>
Gradle 依赖:
implementation 'org.apache.commons:commons-csv:1.9.0'
示例代码:
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;
import java.io.FileReader;
import java.io.IOException;
public class ApacheCSVParser {
public static void main(String[] args) {
String csvFile = "path/to/your/csvfile.csv";
try (CSVParser parser = new CSVParser(new FileReader(csvFile), CSVFormat.DEFAULT)) {
for (CSVRecord record : parser) {
// 处理每行数据,例如:System.out.println(record.get(0));
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
这三种方法都可以用来解析 CSV 文件,您可以根据项目的需要选择适合您的方式。