当前位置:首页 > Java

java如何读取csv

2026-03-03 18:11:11Java

读取CSV文件的方法

在Java中读取CSV文件可以通过多种方式实现,以下是几种常见的方法:

使用第三方库(如OpenCSV)

OpenCSV是一个流行的库,专门用于处理CSV文件。添加依赖后,可以轻松读取CSV数据。

<!-- Maven依赖 -->
<dependency>
    <groupId>com.opencsv</groupId>
    <artifactId>opencsv</artifactId>
    <version>5.7.1</version>
</dependency>
import com.opencsv.CSVReader;
import java.io.FileReader;
import java.io.IOException;

public class ReadCSV {
    public static void main(String[] args) {
        try (CSVReader reader = new CSVReader(new FileReader("data.csv"))) {
            String[] nextLine;
            while ((nextLine = reader.readNext()) != null) {
                for (String cell : nextLine) {
                    System.out.print(cell + " ");
                }
                System.out.println();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用Apache Commons CSV

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

<!-- Maven依赖 -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-csv</artifactId>
    <version>1.9.0</version>
</dependency>
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;

public class ReadCSV {
    public static void main(String[] args) {
        try (Reader reader = new FileReader("data.csv");
             CSVParser csvParser = new CSVParser(reader, CSVFormat.DEFAULT)) {
            for (CSVRecord record : csvParser) {
                String column1 = record.get(0);
                String column2 = record.get(1);
                System.out.println(column1 + ", " + column2);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用Java原生方法(BufferedReader)

如果不希望引入第三方库,可以使用Java原生的BufferedReader逐行读取并手动解析。

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

public class ReadCSV {
    public static void main(String[] args) {
        String line;
        try (BufferedReader br = new BufferedReader(new FileReader("data.csv"))) {
            while ((line = br.readLine()) != null) {
                String[] values = line.split(",");
                for (String value : values) {
                    System.out.print(value + " ");
                }
                System.out.println();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

处理复杂CSV(含引号或转义字符)

如果CSV包含引号或转义字符,手动解析可能会出错。建议使用第三方库(如OpenCSV或Apache Commons CSV)以正确处理这些情况。

java如何读取csv

// 使用OpenCSV处理带引号的CSV
CSVReader reader = new CSVReaderBuilder(new FileReader("data.csv"))
    .withSkipLines(1) // 跳过标题行
    .build();

注意事项

  • 文件路径需正确,相对路径以项目根目录为基准。
  • 处理大型文件时,注意内存占用问题。
  • 第三方库通常提供更好的性能和功能(如自动处理引号、换行符等)。

标签: javacsv
分享给朋友:

相关文章

java如何导包

java如何导包

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

java如何打印数组

java如何打印数组

打印数组的方法 在Java中,打印数组有多种方式,以下是几种常见的方法: 使用Arrays.toString()方法 这种方法适用于一维数组,可以快速将数组转换为字符串形式输出: int[] a…

eclipse如何创建java

eclipse如何创建java

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

如何升级java

如何升级java

检查当前Java版本 在升级之前,需确认当前安装的Java版本。在终端或命令提示符中运行以下命令: java -version 输出会显示当前Java版本(如1.8.0_301或17.0.2)。…

java如何入门

java如何入门

学习基础语法 从Java的基础语法开始,包括变量、数据类型、运算符、控制结构(if-else、for循环、while循环)等。可以通过官方文档或入门教程学习。 安装开发环境 下载并安装JDK(J…

如何学java基础

如何学java基础

学习Java基础的方法 理解Java的基本概念 Java是一种面向对象的编程语言,掌握基础概念如类、对象、继承、多态和封装是必要的。熟悉Java的语法结构,包括变量、数据类型、运算符和控制语句。 安…