当前位置: 代码网 > it编程>编程语言>Java > 一文详解Java如何使用commons-csv搞定CSV文件操作

一文详解Java如何使用commons-csv搞定CSV文件操作

2025年02月13日 Java 我要评论
在 java 开发中,处理 csv(逗号分隔值)文件是一项常见的任务。apache commons csv 库就是一个非常强大且易用的工具,它能让我们轻松地读取、写入和操作 csv 文件。下面我就来详

在 java 开发中,处理 csv(逗号分隔值)文件是一项常见的任务。apache commons csv 库就是一个非常强大且易用的工具,它能让我们轻松地读取、写入和操作 csv 文件。下面我就来详细给你讲讲 commons-csv 库的使用方法。

1. 引入 commons-csv 库

首先,你得把 commons-csv 库添加到你的项目中。如果你使用的是 maven 项目,就在 pom.xml 文件里添加以下依赖:

<dependency>
    <groupid>org.apache.commons</groupid>
    <artifactid>commons-csv</artifactid>
    <version>1.9.0</version>
</dependency>

2. 读取 csv 文件

下面是使用 commons-csv 库读取 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 readcsvexample {
    public static void main(string[] args) {
        try {
            // 创建一个 reader 对象,用于读取 csv 文件
            reader in = new filereader("example.csv");
 
            // 使用 csvformat.default 来解析 csv 文件
            csvparser parser = new csvparser(in, csvformat.default);
 
            // 遍历 csv 文件的每一行记录
            for (csvrecord record : parser) {
                // 遍历当前记录的每一个字段
                for (string field : record) {
                    system.out.print(field + "\t");
                }
                system.out.println();
            }
 
            // 关闭解析器
            parser.close();
        } catch (ioexception e) {
            e.printstacktrace();
            system.out.println("csv 文件读取失败:" + e.getmessage());
        }
    }
}

代码解释:

reader in = new filereader("example.csv");:创建一个 filereader 对象,用于读取 example.csv 文件。

csvparser parser = new csvparser(in, csvformat.default);:使用 csvformat.default 来解析 csv 文件,创建一个 csvparser 对象。

for (csvrecord record : parser):遍历 csvparser 中的每一行记录,csvrecord 表示一行数据。

for (string field : record):遍历当前记录的每一个字段,将其打印出来。

parser.close();:关闭 csvparser,释放资源。

3. 写入 csv 文件

接下来是使用 commons-csv 库写入 csv 文件的示例代码:

import org.apache.commons.csv.csvformat;
import org.apache.commons.csv.csvprinter;
 
import java.io.filewriter;
import java.io.ioexception;
import java.io.writer;
 
public class writecsvexample {
    public static void main(string[] args) {
        try {
            // 创建一个 writer 对象,用于写入 csv 文件
            writer out = new filewriter("output.csv");
 
            // 使用 csvformat.default 来创建 csvprinter 对象
            csvprinter printer = new csvprinter(out, csvformat.default);
 
            // 写入表头
            printer.printrecord("name", "age", "city");
 
            // 写入数据行
            printer.printrecord("john", "25", "new york");
            printer.printrecord("jane", "30", "los angeles");
 
            // 刷新并关闭 csvprinter
            printer.flush();
            printer.close();
 
            system.out.println("csv 文件写入成功!");
        } catch (ioexception e) {
            e.printstacktrace();
            system.out.println("csv 文件写入失败:" + e.getmessage());
        }
    }
}

代码解释:

writer out = new filewriter("output.csv");:创建一个 filewriter 对象,用于写入 output.csv 文件。

csvprinter printer = new csvprinter(out, csvformat.default);:使用 csvformat.default 来创建 csvprinter 对象,用于写入 csv 文件。

printer.printrecord("name", "age", "city");:写入 csv 文件的表头。

printer.printrecord("john", "25", "new york");:写入一行数据。

printer.flush(); printer.close();:刷新缓冲区并关闭 csvprinter,确保数据写入文件。

4. 自定义 csv 格式

commons-csv 库还允许我们自定义 csv 文件的格式,比如指定分隔符、引号字符等。以下是一个示例:

import org.apache.commons.csv.csvformat;
import org.apache.commons.csv.csvprinter;
 
import java.io.filewriter;
import java.io.ioexception;
import java.io.writer;
 
public class customcsvformatexample {
    public static void main(string[] args) {
        try {
            // 创建一个 writer 对象,用于写入 csv 文件
            writer out = new filewriter("custom_output.csv");
 
            // 自定义 csv 格式,使用分号作为分隔符
            csvformat customformat = csvformat.default.withdelimiter(';');
 
            // 使用自定义格式创建 csvprinter 对象
            csvprinter printer = new csvprinter(out, customformat);
 
            // 写入表头
            printer.printrecord("name", "age", "city");
 
            // 写入数据行
            printer.printrecord("john", "25", "new york");
            printer.printrecord("jane", "30", "los angeles");
 
            // 刷新并关闭 csvprinter
            printer.flush();
            printer.close();
 
            system.out.println("自定义格式的 csv 文件写入成功!");
        } catch (ioexception e) {
            e.printstacktrace();
            system.out.println("csv 文件写入失败:" + e.getmessage());
        }
    }
}

代码解释:

csvformat customformat = csvformat.default.withdelimiter(';');:自定义 csv 格式,使用分号作为分隔符。

csvprinter printer = new csvprinter(out, customformat);:使用自定义格式创建 csvprinter 对象。

以上就是一文详解java如何使用commons-csv搞定csv文件操作的详细内容,更多关于java commons-csv操作csv的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com