首页 > 其他分享 >Apache Commons CSV 基本使用

Apache Commons CSV 基本使用

时间:2023-06-17 21:02:58浏览次数:40  
标签:文件 csv 读取 Commons commons Apache import CSV


Apache Commons CSV 基本使用


文章目录

  • Apache Commons CSV 基本使用
  • 一、概述
  • 1、简介
  • 2、主要特点
  • 3、官方资料
  • 二、基本使用
  • 1、引入依赖
  • 2、读取 `.csv` 文件
  • 文件内容
  • 读取文件
  • 3、写入文件
  • 写入文件
  • 写入结果


一、概述

1、简介

Apache Commons CSV是Apache软件基金会的一个开源项目,它提供了用于读取和写入CSV(逗号分隔值)文件的Java库。CSV是一种常见的文本文件格式,用于存储以逗号为分隔符的表格数据。

Apache Commons CSV提供了简单而灵活的API,使您能够轻松地处理CSV文件。它支持自定义分隔符、引用字符和转义字符,可以处理包含换行符和特殊字符的字段,并提供了方便的方法来读取和写入CSV数据。

2、主要特点

  1. 读取和写入CSV文件:您可以使用该库来读取现有的CSV文件,并从中提取数据。您还可以使用它来创建新的CSV文件并将数据写入其中。
  2. 自定义格式选项:您可以定义CSV文件中的分隔符、引用字符和转义字符。这使您能够适应各种CSV文件的格式要求。
  3. 处理换行符和特殊字符:Apache Commons CSV支持处理包含换行符和特殊字符(如分隔符本身)的字段。它可以正确解析这些字段,并提供一致的访问方式。
  4. 灵活的数据访问:您可以使用索引或列名来访问CSV文件中的数据。该库提供了一种简单的方式来迭代和访问CSV文件的每一行和每个字段。
  5. 异常处理:Apache Commons CSV提供了有用的错误处理和异常处理机制。它可以检测和报告CSV文件中的格式错误,并提供相应的异常类型供您处理。

3、官方资料

主页地址:

https://commons.apache.org/proper/commons-csv/

文档:

https://commons.apache.org/proper/commons-csv/apidocs/index.html

二、基本使用

1、引入依赖

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-csv -->
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-csv</artifactId>
    <version>1.10.0</version>
</dependency>

2、读取 .csv 文件

文件内容

文件编码是 UTF-8

Apache Commons CSV 基本使用_apache

读取文件

文件路径:C:\Users\Administrator\Desktop\hello.csv

package com.zibo;

import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.nio.charset.StandardCharsets;
import java.util.List;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;

/**
 * @author zibo
 * @date 2023/6/10 19:25
 * @slogan 慢慢学,不要停。
 */
public class Hello {

    public static void main(String[] args) {
        try (Reader in = new FileReader("C:\\Users\\Administrator\\Desktop\\hello.csv", StandardCharsets.UTF_8)) {
            // 读取文件:CSVFormat.EXCEL 表示使用Excel风格的 CSV 格式进行解析
            CSVParser records = CSVFormat.EXCEL.parse(in);
            // 读取所有行
            List<CSVRecord> list = records.getRecords();
            // 遍历每一行
            for (CSVRecord record : list) {
                // 输出每一行的大小
                System.out.println(record.size());
                // 遍历每一行的每一列
                for (int i = 0; i < record.size(); i++) {
                    System.out.println(record.get(i));
                }
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

}

3、写入文件

写入文件

package com.zibo;

import java.io.FileWriter;
import java.io.IOException;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVPrinter;

public class CSVWriterExample {

    public static void main(String[] args) {
        try (FileWriter writer = new FileWriter("C:\\Users\\Administrator\\Desktop\\study.csv");
            CSVPrinter csvPrinter = new CSVPrinter(writer, CSVFormat.DEFAULT)) {
            csvPrinter.printRecord("第一行第一列", "第一行第二列");
            csvPrinter.printRecord("第二行第一列", "第二行第二列");
            csvPrinter.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

写入结果

Apache Commons CSV 基本使用_maven_02


标签:文件,csv,读取,Commons,commons,Apache,import,CSV
From: https://blog.51cto.com/u_13272819/6506217

相关文章

  • 和利时MACSV6.5.3中4byte数据合并转换为单精度浮点数float
    和利时MACSV6.5.3中4byte数据合并转换为单精度浮点数float代码截图验证完整可导入代码复制到记事本中,保存为xml文件,在和利时M6AutoThink中导入<?xmlversion="1.0"encoding="ISO-8859-1"?><pou> <path><![CDATA[USER]]></path> <name>IEEE754</name&g......
  • idea的Maven配置问题:Cannot resolve plugin org.apache.maven....
    这明显就是一个坑!原因有两个方面。1、网络问题(我是这个原因)我们用的联通专线,在IP访问上有限制,导致我的Maven仓库一直下载不来,后来换了手机热点就好了。2、Maven仓库配置问题修改源:(1)阿里源<mirror><id>aliyunmaven</id><mirrorOf>central</mirrorOf><name>c......
  • apache安装与测试
    在配置好网络的前提下安装httpd软件包yuminstall-yhttpd启动httpd服务systemctlstarthttpd测试httpd服务......
  • 曝光!Apache SeaTunnel Catalog 功能设计为何能大大简化用户启用步骤?
    Catalog(目录)提供了关于数据库、表格和访问数据所需的信息的元数据,以及统一的API来管理元数据,验证连接,让元数据对Sources(数据源)、Sinks(数据汇)和Web可访问。Catalog让用户能够引用其数据系统中的现有元数据,并自动映射到SeaTunnel的对应元数据。总之,Catalog大大简化了使用......
  • Apache Storm教程_编程入门自学教程_菜鸟教程-免费教程分享
    教程简介ApacheStorm是一个分布式实时大数据处理系统。Storm设计用于在容错和水平可扩展方法中处理大量数据。它是一个流数据框架,具有最高的摄取率。虽然Storm是无状态的,它通过ApacheZooKeeper管理分布式环境和集群状态。它很简单,您可以并行地对实时数据执行各种操作。ApacheS......
  • Apache Spark教程_编程入门自学教程_菜鸟教程-免费教程分享
    教程简介ApacheSpark是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UCBerkeleyAMPlab(加州大学伯克利分校的AMP实验室)所开源的类HadoopMapReduce的通用并行框架,Spark,拥有HadoopMapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存......
  • 随笔(十九)『org.apache.ibatis.binding.BindingException: Invalid bound statement (n
    1、错误信息:org.apache.ibatis.binding.BindingException:Invalidboundstatement(notfound)出现此错误时: 1、除了查看代码上的各种名称,映射之类能否找到外。 2、查看下target中是否有对应的xml文件,因为maven默认是不会把非resource中的xml打包进target的 解决方案:pom.xm......
  • apache-cve_2021_41773
     0x01漏洞描述2021年10月5日,Apache发布更新公告,修复了ApacheHTTPServer2.4.49中的一个路径遍历和文件泄露漏洞(CVE-2021-41773)。攻击者可以通过路径遍历攻击将URL映射到预期文档根目录之外的文件,如果文档根目录之外的文件不受“requirealldenied”访问控制参数的保护(默认......
  • Apache Beam和BigQuery的错误处理(Java SDK)
    设计管道假设我们有一个简单的场景:事件正在流向Kafka,我们希望使用管道中的事件,进行一些转换并将结果写入BigQuery表,以使数据可用于分析。可以在作业开始之前创建BigQuery表,或者Beam本身可以创建它。代码看起来很简单:EventsProcessingOptionsoptions=PipelineOptionsFactory......
  • struts中使用org.apache.commons.fileupload
    struts的DownloadAction使用后发现,当我提取中文名的文件时,会转换成乱码(弹出的对话框为乱码),可能还没有研究明白,所以考虑用smartupload和commons-fileupload。使用smartupload上传过大文件,或者多文件的时候可能出现CPU或内存占用过高的问题.并且:只有重新启动容器才能恢复正常!后决定用......