当前位置:首页 > Java

java如何读写csv

2026-03-24 17:58:41Java

读取CSV文件

使用BufferedReader逐行读取CSV文件,配合String.split()分割逗号分隔的字段。注意处理字段内包含逗号或引号的情况。

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

public class CSVReader {
    public static void main(String[] args) {
        String csvFile = "data.csv";
        String line;
        String csvSplitBy = ",";

        try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) {
            while ((line = br.readLine()) != null) {
                String[] data = line.split(csvSplitBy);
                System.out.println("Column 1: " + data[0] + ", Column 2: " + data[1]);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

对于复杂CSV格式,建议使用第三方库如OpenCSV

import com.opencsv.CSVReader;
import java.io.FileReader;

CSVReader reader = new CSVReader(new FileReader("data.csv"));
String[] nextLine;
while ((nextLine = reader.readNext()) != null) {
    System.out.println(nextLine[0] + " | " + nextLine[1]);
}

写入CSV文件

使用FileWriter配合StringBuilder构建CSV格式内容:

import java.io.FileWriter;
import java.io.IOException;

public class CSVWriter {
    public static void main(String[] args) {
        String csvFile = "output.csv";
        try (FileWriter writer = new FileWriter(csvFile)) {
            writer.append("Name,Age\n");
            writer.append("John,30\n");
            writer.append("Jane,25\n");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用OpenCSV库更安全地处理特殊字符:

import com.opencsv.CSVWriter;
import java.io.FileWriter;

CSVWriter csvWriter = new CSVWriter(new FileWriter("output.csv"));
String[] header = {"Name", "Age"};
csvWriter.writeNext(header);
csvWriter.writeNext(new String[]{"John", "30"});
csvWriter.close();

处理特殊字符

当字段包含逗号或换行符时,字段应该用双引号包裹:

// 手动处理
String escapedValue = "\"" + value.replace("\"", "\"\"") + "\"";

// 使用OpenCSV自动处理
csvWriter.writeNext(new String[]{"包含,逗号的值", "正常值"});

性能优化

对于大数据量,考虑使用缓冲流:

BufferedWriter bw = new BufferedWriter(new FileWriter("large.csv"));
bw.write("header1,header2\n");
bw.flush();

第三方库推荐

  1. OpenCSV:功能全面,支持注解映射

    <dependency>
        <groupId>com.opencsv</groupId>
        <artifactId>opencsv</artifactId>
        <version>5.7.1</version>
    </dependency>
  2. Apache Commons CSV:轻量级解决方案

    java如何读写csv

    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-csv</artifactId>
        <version>1.9.0</version>
    </dependency>

标签: javacsv
分享给朋友:

相关文章

如何卸载java

如何卸载java

卸载Java的步骤 Windows系统卸载方法 打开控制面板,选择“程序和功能”或“卸载程序”。在列表中找到Java相关条目(如“Java 8 Update 251”),右键选择卸载并跟随向导完成操…

java如何配置环境变量

java如何配置环境变量

配置Java环境变量的方法 下载并安装JDK 从Oracle官网或OpenJDK下载适合操作系统的JDK安装包。运行安装程序并按照提示完成安装,记下JDK的安装路径(例如C:\Program File…

java如何运行程序

java如何运行程序

运行Java程序的步骤 安装Java开发工具包(JDK) 确保系统已安装JDK,可通过命令行输入java -version和javac -version验证。若未安装,需从Oracle官网下载并配置环…

如何安装java运行环境

如何安装java运行环境

下载Java开发工具包(JDK) 访问Oracle官方网站或OpenJDK项目页面,选择适合操作系统的JDK版本进行下载。Windows用户通常选择.exe安装包,macOS用户选择.dmg,Linu…

如何阅读java源码

如何阅读java源码

阅读Java源码的方法 选择合适的源码项目 初学者建议从JDK核心类库(如java.lang、java.util)或知名开源项目(如Spring、Guava)入手。选择文档完善、社区活跃的项目能降低理…

eclipse如何创建java

eclipse如何创建java

在Eclipse中创建Java项目 打开Eclipse后,选择菜单栏中的"File" -> "New" -> "Java Project"。在弹出的对话框中输入项目名称,确保"Use de…