📅  最后修改于: 2023-12-03 15:31:33.003000             🧑  作者: Mango
在处理 CSV 文件时,有时需要将文件中的某些列删除。Java 中提供了多种方式来操作 CSV 文件,本文将给程序员介绍如何使用 OpenCSV 库和 Apache Commons CSV 库来删除 CSV 文件中的列。
OpenCSV 是一个免费的库,可以方便地读写 CSV 文件。以下是使用 OpenCSV 删除 CSV 文件中的列的步骤。
添加以下 Maven 依赖:
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>5.3</version>
</dependency>
使用 OpenCSV 提供的 CSVReader 类读取 CSV 文件,并将文件的内容存储为二维数组。
// 读取 CSV 文件
CSVReader reader = new CSVReader(new FileReader("example.csv"));
List<String[]> rows = reader.readAll();
reader.close();
删除 CSV 文件中的第二列,可以通过以下代码完成:
// 删除第二列
for (int i = 0; i < rows.size(); i++) {
String[] row = rows.get(i);
List<String> newRow = new ArrayList<>();
for (int j = 0; j < row.length; j++) {
if (j != 1) {
newRow.add(row[j]);
}
}
rows.set(i, newRow.toArray(new String[0]));
}
使用 OpenCSV 提供的 CSVWriter 类,将处理后的内容写回到 CSV 文件中。
// 写入 CSV 文件
CSVWriter writer = new CSVWriter(new FileWriter("example_new.csv"));
writer.writeAll(rows);
writer.close();
Apache Commons CSV 是 Apache 软件基金会提供的一个库,可以方便地读写 CSV 文件。以下是使用 Apache Commons CSV 删除 CSV 文件中的列的步骤。
添加以下 Maven 依赖:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.8</version>
</dependency>
使用 Apache Commons CSV 提供的 CSVParser 类读取 CSV 文件,并将文件的内容存储为二维数组。
// 读取 CSV 文件
CSVParser parser = CSVParser.parse(new File("example.csv"), StandardCharsets.UTF_8, CSVFormat.DEFAULT);
List<CSVRecord> records = parser.getRecords();
parser.close();
删除 CSV 文件中的第二列,可以通过以下代码完成:
// 删除第二列
for (CSVRecord record : records) {
List<String> newRow = new ArrayList<>();
for (int i = 0; i < record.size(); i++) {
if (i != 1) {
newRow.add(record.get(i));
}
}
records.set(record.getRecordNumber() - 1, CSVRecord.from(newRow));
}
使用 Apache Commons CSV 提供的 CSVPrinter 类,将处理后的内容写回到 CSV 文件中。
// 写入 CSV 文件
CSVPrinter printer = new CSVPrinter(new FileWriter("example_new.csv"), CSVFormat.DEFAULT);
for (CSVRecord record : records) {
printer.printRecord(record);
}
printer.close();
以上是使用 OpenCSV 和 Apache Commons CSV 删除 CSV 文件中的列的步骤。程序员可以根据具体需求选择适合自己的库来操作 CSV 文件。