当前位置:首页 > 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 Development Kit (JDK),推荐从Oracle官网或OpenJDK获取最新版本。安装完成后配置环境变量,确保JAVA_HOME和PATH变量正…

java如何编程

java如何编程

Java编程基础 Java是一种面向对象的编程语言,广泛应用于企业级开发、移动应用(Android)等领域。以下是Java编程的核心步骤和示例。 环境搭建 安装JDK 从Oracle官网下载适合…

java如何调用方法

java如何调用方法

调用方法的基本语法 在Java中,调用方法需要明确方法所属的对象(实例方法)或类(静态方法),并传递必要的参数。语法格式如下: 实例方法:对象名.方法名(参数列表); 静态方法:类名…

如何编写java程序

如何编写java程序

安装开发环境 下载并安装JDK(Java Development Kit),推荐从Oracle官网或OpenJDK获取最新版本。安装完成后配置环境变量,确保JAVA_HOME和PATH正确设置。 选…

java如何配置环境变量

java如何配置环境变量

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

java如何调试

java如何调试

调试Java程序的基本方法 使用IDE内置的调试工具(如IntelliJ IDEA或Eclipse)是最常见的方式。在代码行号旁点击设置断点,启动调试模式后,程序会在断点处暂停,允许查看变量值、调用栈…