📅  最后修改于: 2023-12-03 15:23:59.200000             🧑  作者: Mango
CSV格式是一种以逗号作为分隔符的文件格式,通常用于存储表格数据。Java可以使用第三方库来读取和写入CSV文件,其中最流行的是Apache Commons CSV。
使用Apache Commons CSV库,可以按照以下步骤从CSV文件中读取数据:
在Maven项目中,可以使用以下依赖项引入库:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.8</version>
</dependency>
对于Gradle项目,请使用以下依赖项:
implementation 'org.apache.commons:commons-csv:1.8'
Reader reader = new FileReader("path/to/csv/file.csv");
CSVParser parser = new CSVParserBuilder()
.withSeparator(',')
.withIgnoreQuotations(false)
.build();
CSVReader csvReader = new CSVReaderBuilder(reader)
.withCSVParser(parser)
.build();
List<String[]> records = csvReader.readAll();
假设有以下CSV文件:
name,age,email
John Doe,30,john@example.com
Jane Smith,25,jane@example.com
可以为Java中的Person类编写一个解析方法:
public static List<Person> parseCsv(String csvFile) throws IOException {
Reader reader = new FileReader(csvFile);
CSVParser parser = new CSVParserBuilder()
.withSeparator(',')
.withIgnoreQuotations(false)
.build();
CSVReader csvReader = new CSVReaderBuilder(reader)
.withCSVParser(parser)
.build();
List<Person> persons = new ArrayList<>();
String[] record;
while ((record = csvReader.readNext()) != null) {
String name = record[0];
int age = Integer.parseInt(record[1]);
String email = record[2];
persons.add(new Person(name, age, email));
}
return persons;
}
使用Apache Commons CSV库,可以按照以下步骤将数据写入CSV文件:
在Maven项目中,可以使用以下依赖项引入库:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.8</version>
</dependency>
对于Gradle项目,请使用以下依赖项:
implementation 'org.apache.commons:commons-csv:1.8'
Writer writer = new FileWriter("path/to/csv/file.csv");
CSVPrinter printer = new CSVPrinter(
writer,
CSVFormat.DEFAULT.withHeader("name", "age", "email"));
List<Person> persons = new ArrayList<>();
persons.add(new Person("John Doe", 30, "john@example.com"));
persons.add(new Person("Jane Smith", 25, "jane@example.com"));
for (Person person : persons) {
printer.printRecord(person.getName(), person.getAge(), person.getEmail());
}
printer.close();
使用Apache Commons CSV库可以方便地读取和写入CSV格式的数据。在读取CSV文件时,可以使用CSVParser对象将文件解析为记录列表,并将这些记录转换为Java对象。在将数据写入CSV文件时,可以使用CSVPrinter对象将Java对象转换为CSV记录并将其写入文件。