当前位置:首页 > Java

java如何使用csv

2026-03-24 20:17:54Java

使用 Java 处理 CSV 文件

Java 提供了多种方式来处理 CSV 文件,以下是几种常见的方法:

使用 OpenCSV 库

OpenCSV 是一个流行的 Java 库,专门用于处理 CSV 文件。以下是基本的使用示例:

import com.opencsv.CSVReader;
import com.opencsv.CSVWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

// 读取 CSV 文件
try (CSVReader reader = new CSVReader(new FileReader("input.csv"))) {
    String[] nextLine;
    while ((nextLine = reader.readNext()) != null) {
        for (String value : nextLine) {
            System.out.print(value + " ");
        }
        System.out.println();
    }
}

// 写入 CSV 文件
try (CSVWriter writer = new CSVWriter(new FileWriter("output.csv"))) {
    String[] header = {"Name", "Age", "City"};
    writer.writeNext(header);
    String[] data = {"John", "25", "New York"};
    writer.writeNext(data);
}

使用 Apache Commons CSV

Apache Commons CSV 是另一个强大的库,支持多种 CSV 格式:

import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVPrinter;
import org.apache.commons.csv.CSVRecord;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer;

// 读取 CSV 文件
try (Reader reader = new FileReader("input.csv");
     CSVParser csvParser = new CSVParser(reader, CSVFormat.DEFAULT)) {
    for (CSVRecord record : csvParser) {
        String name = record.get(0);
        String age = record.get(1);
        System.out.println("Name: " + name + ", Age: " + age);
    }
}

// 写入 CSV 文件
try (Writer writer = new FileWriter("output.csv");
     CSVPrinter csvPrinter = new CSVPrinter(writer, CSVFormat.DEFAULT)) {
    csvPrinter.printRecord("Name", "Age", "City");
    csvPrinter.printRecord("John", 25, "New York");
}

使用 Java 原生方法

如果不想依赖外部库,可以使用 Java 原生的方法处理 CSV 文件:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

// 读取 CSV 文件
try (BufferedReader br = new BufferedReader(new FileReader("input.csv"))) {
    String line;
    while ((line = br.readLine()) != null) {
        String[] values = line.split(",");
        for (String value : values) {
            System.out.print(value + " ");
        }
        System.out.println();
    }
}

// 写入 CSV 文件
try (FileWriter writer = new FileWriter("output.csv")) {
    writer.append("Name,Age,City\n");
    writer.append("John,25,New York\n");
}

处理包含特殊字符的 CSV

如果 CSV 文件包含逗号或引号等特殊字符,建议使用专门的库(如 OpenCSV 或 Apache Commons CSV)来处理:

java如何使用csv

// 使用 OpenCSV 处理带引号的字段
CSVReader reader = new CSVReaderBuilder(new FileReader("input.csv")).withSkipLines(1).build();
String[] nextLine;
while ((nextLine = reader.readNext()) != null) {
    System.out.println(Arrays.toString(nextLine));
}

以上方法可以根据具体需求选择使用。对于简单的 CSV 文件,Java 原生方法可能足够;对于复杂的 CSV 文件,推荐使用专门的库。

分享给朋友:

相关文章

java如何运行

java如何运行

运行Java程序的基本方法 Java程序的运行需要经过编写、编译和执行三个主要阶段。以下是具体步骤: 编写Java源代码 创建一个以.java为后缀的文件,例如HelloWorld.java。文件内…

如何删除java

如何删除java

卸载 Java 的步骤 Windows 系统: 打开控制面板,选择“程序和功能”或“卸载程序”,在列表中找到 Java 相关条目(如“Java Runtime Environment”或“Java D…

java如何调用接口

java如何调用接口

调用接口的基本方法 在Java中调用接口通常涉及实现接口或使用接口引用对象。以下是几种常见场景的示例: 定义接口 public interface MyInterface { void d…

java如何上传文件

java如何上传文件

使用HttpURLConnection上传文件 在Java中,可以通过HttpURLConnection实现文件上传功能。需要设置请求头为multipart/form-data,并构建包含文件数据的请…

java如何导包

java如何导包

导入包的方法 在Java中,导入包(package)可以通过import语句实现,用于引入其他类或包中的功能。以下是几种常见的导包方式: 导入单个类 import java.util.ArrayL…

如何使用 react native

如何使用 react native

安装开发环境 确保已安装 Node.js(建议使用 LTS 版本)。通过以下命令安装 React Native 命令行工具: npm install -g expo-cli 或使用 Yarn: y…