当前位置:首页 > 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环境

下载JDK安装包 访问Oracle官网或OpenJDK官网,选择适合操作系统的JDK版本(如Windows、macOS或Linux)。下载完成后,运行安装程序并按照提示完成安装。 设置环境变量 右键…

如何运行java文件

如何运行java文件

运行Java文件的方法 确保已安装Java Development Kit (JDK),可通过命令行输入java -version和javac -version验证安装。 编写Java代码并保存为.…

java如何删除文件

java如何删除文件

删除文件的基本方法 使用 java.io.File 类的 delete() 方法可以删除文件。如果文件存在且删除成功,返回 true;否则返回 false。 import java.io…

java中如何获取当前时间

java中如何获取当前时间

获取当前时间的几种方法 使用 java.time 包(Java 8及以上推荐) import java.time.LocalDateTime; LocalDateTime currentTime =…

如何升级java

如何升级java

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

php 实现 java md5

php 实现 java md5

在 PHP 中实现与 Java 相同的 MD5 哈希算法,关键在于确保编码和输出格式的一致性。以下是具体实现方法和注意事项: 确保字符串编码一致 Java 的 String.getBytes() 默…