当前位置:首页 > Java

java如何读取csv

2026-02-05 06:57:40Java

读取CSV文件的方法

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

使用OpenCSV库

OpenCSV是一个流行的第三方库,专门用于处理CSV文件。需要先添加依赖(Maven):

<dependency>
    <groupId>com.opencsv</groupId>
    <artifactId>opencsv</artifactId>
    <version>5.7.1</version>
</dependency>

读取CSV文件的示例代码:

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

public class CsvReaderExample {
    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 + "\t");
                }
                System.out.println();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用Apache Commons CSV

Apache Commons CSV是另一个强大的库,支持多种CSV格式。添加依赖:

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

读取CSV文件的示例代码:

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 CsvReaderExample {
    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标准库

如果不希望引入第三方库,可以使用Java标准库中的BufferedReader逐行读取CSV文件:

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

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

处理复杂CSV文件

对于包含引号、换行符等复杂内容的CSV文件,建议使用第三方库(如OpenCSV或Apache Commons CSV),因为它们能更好地处理这些情况。例如,OpenCSV可以自动处理字段中的逗号和引号:

CSVReader reader = new CSVReaderBuilder(new FileReader("data.csv"))
    .withCSVParser(new CSVParserBuilder()
        .withSeparator(',')
        .withQuoteChar('"')
        .build())
    .build();

性能优化

对于大型CSV文件,可以使用流式处理或并行处理以提高性能。Apache Commons CSV支持流式处理:

java如何读取csv

CSVFormat format = CSVFormat.DEFAULT;
try (Reader reader = new FileReader("large.csv");
     CSVParser parser = new CSVParser(reader, format)) {
    parser.stream().forEach(record -> {
        // 处理每行数据
    });
} catch (IOException e) {
    e.printStackTrace();
}

以上方法涵盖了从简单到复杂的CSV文件读取需求,可以根据具体场景选择合适的方式。

标签: javacsv
分享给朋友:

相关文章

java如何实现异步

java如何实现异步

Java实现异步的方法 Java中实现异步编程可以通过多种方式,每种方式适用于不同的场景和需求。以下是常见的实现方法: 使用Thread类 创建新线程执行异步任务是最基础的方式。通过继承Thread…

如何搭建java开发环境

如何搭建java开发环境

下载并安装JDK 从Oracle官网或OpenJDK下载适合操作系统的JDK版本。运行安装程序并按照提示完成安装,建议选择默认路径以减少配置复杂度。 配置环境变量 在系统环境变量中添加JAVA_HO…

如何导入java项目

如何导入java项目

导入Java项目的方法 使用IDE导入(如IntelliJ IDEA或Eclipse) 打开IDE后选择导入现有项目,导航至项目根目录(包含pom.xml或build.gradle的文件位置)。IDE…

java程序如何打包

java程序如何打包

打包Java程序的方法 使用JAR打包 Java程序可以通过JAR(Java Archive)格式打包,这是一种常见的压缩格式,适用于包含多个类文件和资源的项目。以下是使用JAR打包的步骤: 确保项…

java如何创建测试类

java如何创建测试类

创建测试类的基本步骤 在Java中创建测试类通常使用JUnit框架,以下是具体方法: 安装JUnit依赖 对于Maven项目,在pom.xml中添加依赖: <dependency>…

php 实现 java md5

php 实现 java md5

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