OpenCSV处理csv的java工具

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情
What is opencsv?
opencsv is a very simple csv (comma-separated values) parser library for Java. It was developed because all of current csv parsers I've come across don't have commercial-friendly licenses.
Where can I get it?
Source and binaries are available from   Sourceforge. You can check out the   javadocs  online.
What features does opencsv support?
opencsv supports all the basic csv-type things you're likely to want to do:
  • Arbitrary numbers of values per line
  • Ignoring commas in quoted elements
  • Handling quoted entries with embedded carriage returns (ie entries that span multiple lines)
  • Configurable separator and quote characters (or use sensible defaults)
  • Read all the entries at once, or use an Iterator style model
  • Creating csv files from String[] (ie. automatic escaping of embedded quote chars)



How do I read and parse a CSV file?
If you want to use an Iterator style pattern, you might do something like this:
    CSVReader reader = new CSVReader(new FileReader("yourfile.csv"));
    String [] nextLine;
    while ((nextLine = reader.readNext()) != null) {
        // nextLine[] is an array of values from the line
        System.out.println(nextLine[0] + nextLine[1] + "etc...");
    }
           
Or, if you might just want to slurp the whole lot into a   List, just call   readAll()...
    CSVReader reader = new CSVReader(new FileReader("yourfile.csv"));
    List myEntries = reader.readAll();
           
which will give you a   List  of   String[]  that you can iterate over. If all else fails, check out the   Javadoc.
Can I use my own separators and quote characters?
Yes. There are constructors that cater for supplying your own separator and quote characters. Say you're using a tab for your separator, you can do something like this:
    CSVReader reader = new CSVReader(new FileReader("yourfile.csv"), '\t');
               
And if you single quoted your escaped characters rather than double quote them, you can use the three arg constructor:
    CSVReader reader = new CSVReader(new FileReader("yourfile.csv"), '\t', '\'');
           
You may also skip the first few lines of the file if you know that the content doesn't start till later in the file. So, for example, you can skip the first two lines by doing:
    CSVReader reader = new CSVReader(new FileReader("yourfile.csv"), '\t', '\'', 2);
           

Can I write csv files with opencsv?
Yes. There is a CSVWriter in the same package that follows the same semantics as the CSVReader. For example, to write a tab separated file:
     CSVWriter writer = new CSVWriter(new FileWriter("yourfile.csv"), '\t');
     // feed in your array (or convert your data to an array)
     String[] entries = "first#second#third".split("#");
     writer.writeNext(entries);
	writer.close();
               
If you'd prefer to use your own quote characters, you may use the three arg version of the constructor, which takes a quote character (or feel free to pass in CSVWriter.NO_QUOTE_CHARACTER).You can also customise the line terminators used in the generated file (which is handy when you're exporting from your Linux web application to Windows clients). There is a constructor argument for this purpose.
Can I dump out SQL tables to CSV?
Yes you can. Sean Sullivan added a neat feature to CSVWriter so you can pass   writeAll()  a ResultSet.
java.sql.ResultSet myResultSet = ....
writer.writeAll(myResultSet, includeHeaders);
           

Is there a way to bind my CSV file to a list of Javabeans?
Yes there is. Kyle Miller added a new set of classes to allow you to bind a CSV file to a list of JavaBeans based on column name, column position, or a custom mapping strategy. You can find the new classes in the   au.com.bytecode.opencsv.bean  package. Here's how you can map to a java bean based on the field positions in your CSV file:
ColumnPositionMappingStrategy strat = new ColumnPositionMappingStrategy();
strat.setType(YourOrderBean.class);
String[] columns = new String[] {"name", "orderNumber", "id"}; // the fields to bind do in your JavaBean
strat.setColumnMapping(columns);

CsvToBean csv = new CsvToBean();
List list = csv.parse(strat, yourReader);
           
For more detailed examples, check out the test cases for each of the available mapping strategies under the /test/au/com/bytecode/opencsv/bean/.

JAVA实现对CSV文件的读取、写入时内容追加 JAVA实现CSV的读写操作 阅读详情

相关推荐

java 使用 opencsv 处理 csv 字符串

第三方接口 获取 报告数据,数据格式 为 CSV格式。但数据的前几列数据,不需要处理,采用 opencsv 进行处理

weixin_44451210的博客 645

Java从.CSV文件中读取数据和写入

.CSV文件是以逗号分割的数据仓储,读取数据时从每一行中读取一条数据元祖,也是一条数据,再用字符分割的方式获取表中的每一个数据项。     import java.io.BufferedReader;      import java.io.FileReader;           public class TestRead {               public static void main(String[] args) {              try {                  BufferedReader reader = new Buffe

OpenCSV处理反斜线 \ ,将.csv文件映射为Java对象落库clickhouse

原始需求 使用定时任务,将用户的行为日志数据文件(.csv)解析为java对象,并批量落入clickhouse数据库(MySQL亦同理)。 行为日志包含:网站访问日志、文件上传日志、邮件往来等数据 具体方案: springboot+mybatis配置clickhouse openCSV解析.csv映射为java对象 spring的定时任务@Scheduled

qq_42813011的博客 1617

Java实现CSV文件的读写(包含追加内容)

逗号分隔值(,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据,CSV文件由任意数目的记录组成每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符记录间以某种换行符分隔(windows和linux下不一样)所有记录都有完全相同的字段序列通常都是纯文本文件(一般是建议使用文本编辑工具打开)

weixin_45131680的博客 3003

Java读写CSV格式文件(opencsv

使用,下载地址: 一,读取CSV

怀揣梦想,努力前行 8万+

使用 opencsv 读写 csv 文件(结合 mysql)

前言 最近遇到了项目需求,需要从 mysql 中导出数据为 csv 文件,再从 csv 文件中读取数据保存到 mysql。经过检索分析,决定使用 opencsv 实现需求。 本需求可以分为四部分: mysql 数据转换为 java 对象。 java 对象转换为 csv 文件。 csv 文件转换为 java 对象。 java 对象映射保存到 mysql 中。 其中1, 4两步是我们熟悉的增删改查,不必多说。需要解决的是2, 3两步,下面给出2, 3两步的示例代码。 依赖 <!-- https://m

JellyfishMIX 的博客 2013

OpenCSV 1.8: Java CSV处理的完整解析与实战

OpenCSV是一个开源的Java库,用于读取和写入CSV文件。它支持不同的数据格式和字符编码,被广泛应用于数据导入导出场景。OpenCSV提供了简单易用的API,无需深入了解CSV的复杂性,即可实现数据的快速读取和处理。对于非标准类型或需要特殊处理的数据,可以创建自定义类型转换器。以下是一个自定义转换器的例子,用于将字符串"YES"和"NO"转换为布尔值true和false。@Override// 添加映射在这个例子中,类重写了convert。

weixin_31620365的博客 953

Java处理CSV类库:OpenCSV

官网:目前最新版本4.0,更新比较频繁,4.0版本还不够成熟。支持注解(根据名称或者位置)支持自定义转换器AbstractBeanField支持跳跃行skipLine和数据过滤Filter@CsvBindByName:根据CSV输入中该字段的标题名,将一个bean字段映射到CSV文件中的一个字段, 可以控制列名,按名字列名的先后顺序好像是按照字母排序的。

o0way0o的博客 3005

OpenCSV 写入csv文件

OpenCSV中,自定义分隔符是一项强大而灵活的功能。通过CSVWriterBuilder类,开发者可以轻松设置非默认分隔符,如制表符等。这不仅提高了数据的可读性,还能有效解决字段间界限模糊的问题。

qq_41659396的博客 4077

java SprintBoot Opencsv处理csv文件, csv文件读取时第一列无法读取到的问题

网上发现这篇文章,这里转载给发家分享一下。原文:https://www.jianshu.com/p/6414185b2f01 1. 什么叫做CSV Comma-Separated Value ([卡门 赛婆乱提的]逗号分隔)(CSV),因分隔符没有严格的要求,可以使用逗号,也可以使用其他字符(如制表符\t,分号等),所以CSV也被称为逗号分隔或者其他字符分隔值。csv文件是使用纯文本来存储表格数据(只能存储文本,不能存储二进制)。 2. CSV解析的API方法 2.1. Maven依赖 &.

zzhongcy的专栏 6644

使用OpenCSVJava处理CSV文件的库时生成CSV文件添加BOM头的方法

问题描述: 直接使用OpenCSVCSVWriter往流或文件中写入数据并指定编码格式为UTF-8时,使用Excel直接打开会出现读取中文出现乱码的问题。 原因分析: UTF-8以字节为编码单元因此不需要 BOM 来表明字节顺序,但可以用 BOM 来表明编码方式。字符 “Zero Width No-Break Space” 的 UTF-8 编码是 EF BB BF。所以如果接收者收到以 EF BB BF 开头的字节流,就知道这是 UTF-8编码了。 在使用CSV库往文件中写数据前,先添加一个BOM头即可在

Chrisilver的博客 3106

使用OpenCSV和Apache Commons CSV解析CSV文件的Java代码示例

OpenCSV和Apache Commons CSV是两个常用的CSV解析库,它们提供了简单且高效的方法来处理CSV数据。通过使用这两个强大的CSV解析库,开发者可以更加方便地处理CSV文件,并实现各种CSV相关的功能。我们将详细解析示例代码,包括CSV文件读取、数据处理和相关依赖的配置,帮助开发者快速上手使用这两个强大的CSV解析库。使用OpenCSV和Apache Commons CSV库,开发者可以轻松解析和处理CSV文件,快速实现各种CSV相关的功能。如有任何疑问,请随时提问。

优秀码农的博客 1775

Java实战:OpenCSV与Apache Commons CSV高效解析CSV数据对比

本文深入对比了Java生态中两大主流CSV解析库OpenCSV与Apache Commons CSV。通过实战代码示例,从配置、基础解析、高级功能(如格式处理、数据写入、对象映射)到性能表现进行全方位剖析,并提供了清晰的选择建议,帮助开发者根据项目需求(如快速上手、对象映射、格式灵活性)高效选用合适的工具

weixin_29218963的博客 353

maven添加opencsv.jar依赖 操作csv文件

1、pom.xml添加opencsv-3.3.jar依赖: <dependency> <groupId>com.opencsv</groupId> <artifactId>opencsv</artifactId> <version>3.3</version> </dependency> 2、读取csv文件: public void readCsv(String path) { try { DataInput

SPARROW的博客 3720

Java开发者必看:OpenCSV vs Apache Commons CSV,哪个更适合你的CSV解析需求?

本文为Java开发者深度对比了OpenCSV与Apache Commons CSV两大主流CSV解析库。文章从设计哲学、API易用性、性能表现及特殊场景支持等维度进行分析,帮助开发者根据项目需求(如处理标准/非标格式、是否需要Bean映射、性能要求等)做出明智的技术选型。

ujm56789012的博客 205

Java处理Excel/CSV重复列名与并列数据组:Apache POI与OpenCSV实战

在数据处理与ETL流程中,数据清洗是确保数据质量的关键环节,其核心原理在于将原始、非结构化的数据转换为可供分析使用的规范格式。这一过程的技术价值在于提升数据一致性、支持下游系统稳定运行,尤其在数据集成、报表合并与历史数据迁移等应用场景中至关重要。面对数据源常见的重复列名与并列数据组等不规范结构,开发者需采用健壮的解析策略。本文通过Apache POI和OpenCSV库,详细讲解如何构建列名到索引的多值映射以及按组切割数据,实现从混乱表格中准确提取规整数据,有效解决数据打架问题,提升程序的容错性与适应性。

weixin_33883104的博客 318

csv文件 内容转义_java-如何在CSV文件中同时转义逗号和双引号?

有几个库。 这是两个示例:❐Apache Commons LangApache Commons Lang包含一个特殊的类,用于转义或不转义字符串(CSV,EcmaScript,HTML,Java,Json,XML):FileInputStream fis = new FileInputStream("awesomefile.csv");InputStreamReader isr = new Inp...

weixin_39520988的博客 588

JavaCSV文件的正确姿势

一、简介 本文讲述如何用java来写csv文件。 CSV的意思是逗号分隔符(Comma-Separated-Values),是不同系统之间传输数据的一种常见方式。 要想写csv文件需要用到java.io包。本文将讲述如何处理特殊字符。我们的目标是写出Microsoft Excel和google sheets可以读取的csv文件。 给出java例子后,我们还将给出一些好用的第三方库。 ...

悟鸣的技术博客 9572

JAVAopencsv包解析CSV大文件

最近有些从大数据部门下载的基础数据,并已csv格式存储的,其中一些单个文件中数据量达到200W条。现在需要我把文件重新解析一次。因为其中一个表头对应的值是一个{key1=value1, key2=value2,key3=value3}类型。而且要把key1、key2、key3等解析出来并作为新的表头,然后生成新的csv文件。1.用Excel打开csv文件最大能展示出1048576行,想让领导能看到所有数据,当然需要拆分文件哦2.我是将csv拆分成多个且最大900000条数据的csv文件,即便如此,单个文件也

书山有路勤为径,学海无涯乐作舟! 8984
上一篇: Unix关机和注销用户命令
下一篇: PostGresql
tsinghe
博客等级 码龄19年 9粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值