📜  java 从 csv 中删除列 - Java (1)

📅  最后修改于: 2023-12-03 15:31:33.003000             🧑  作者: Mango

Java 从 CSV 中删除列

在处理 CSV 文件时,有时需要将文件中的某些列删除。Java 中提供了多种方式来操作 CSV 文件,本文将给程序员介绍如何使用 OpenCSV 库和 Apache Commons CSV 库来删除 CSV 文件中的列。

1. 使用 OpenCSV 库删除列

OpenCSV 是一个免费的库,可以方便地读写 CSV 文件。以下是使用 OpenCSV 删除 CSV 文件中的列的步骤。

1.1 添加 Maven 依赖

添加以下 Maven 依赖:

<dependency>
  <groupId>com.opencsv</groupId>
  <artifactId>opencsv</artifactId>
  <version>5.3</version>
</dependency>
1.2 读取 CSV 文件

使用 OpenCSV 提供的 CSVReader 类读取 CSV 文件,并将文件的内容存储为二维数组。

// 读取 CSV 文件
CSVReader reader = new CSVReader(new FileReader("example.csv"));
List<String[]> rows = reader.readAll();
reader.close();
1.3 删除列

删除 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]));
}
1.4 写入 CSV 文件

使用 OpenCSV 提供的 CSVWriter 类,将处理后的内容写回到 CSV 文件中。

// 写入 CSV 文件
CSVWriter writer = new CSVWriter(new FileWriter("example_new.csv"));
writer.writeAll(rows);
writer.close();
2. 使用 Apache Commons CSV 库删除列

Apache Commons CSV 是 Apache 软件基金会提供的一个库,可以方便地读写 CSV 文件。以下是使用 Apache Commons CSV 删除 CSV 文件中的列的步骤。

2.1 添加 Maven 依赖

添加以下 Maven 依赖:

<dependency>
  <groupId>org.apache.commons</groupId>
  <artifactId>commons-csv</artifactId>
  <version>1.8</version>
</dependency>
2.2 读取 CSV 文件

使用 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();
2.3 删除列

删除 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));
}
2.4 写入 CSV 文件

使用 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 文件。