当前位置:首页 > 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文件的示例代码:

java如何读取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文件的示例代码:

java如何读取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支持流式处理:

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 版本的方法 通过命令行工具 打开终端(Windows 为命令提示符或 PowerShell,macOS/Linux 为 Terminal),输入以下命令并回车: java -ve…

java如何

java如何

Java 基础语法 Java 是一种面向对象的编程语言,语法相对严谨。每个 Java 程序必须包含一个 main 方法作为程序入口。以下是一个简单的 Java 程序示例: public class…

java程序如何运行

java程序如何运行

编写Java代码 使用文本编辑器或IDE(如IntelliJ IDEA、Eclipse)编写Java源代码,保存为.java文件。例如: public class HelloWorld {…

如何学java

如何学java

学习Java的基础知识 Java是一门面向对象的编程语言,掌握基础语法是入门的关键。需要了解变量、数据类型、运算符、控制结构(如if-else、for循环、while循环)、数组等概念。可以通过官方文…

java如何读取文件

java如何读取文件

读取文件的常用方法 Java提供了多种读取文件的方式,适用于不同场景和需求。以下是几种常见的方法: 使用FileInputStream和BufferedInputStream读取二进制文件…

如何卸载java

如何卸载java

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