导航:首页 > 编程语言 > java解析csv文件

java解析csv文件

发布时间:2024-12-07 07:13:48

Ⅰ 使用OpenCSV在java中读写CSV

本系列文章最后一部分,专门探讨在Java中使用OpenCSV进行CSV文件读写。OpenCSV凭借其简洁易懂的特性,以及与Apache Commons CSV相媲美的性能和功能,成为CSV解析领域的有力选择。

OpenCSV以Apache 2.0许可证发布,用户可在下载后评估其源代码、Java文档和丰富的JUnit测试套件。该库的便捷性在于其集成于MVNRepository,简化了依赖关系管理。CSVReader的灵活性体现在一次读取一个记录、多个记录列表或作为迭代器,适应不同读取数据需求。

虽然OpenCSV在预定义格式上不如Apache Commons CSV丰富,但它依赖两个解析器提供基础功能,支持读取、写入和将Bean直接映射至CSV,甚至能利用标题行实现CSV到Java Map的高效转换。

对于读取CSV,OpenCSV通过CSVReader实现,与Apache Commons CSV的CSVParser相当,支持简单与复杂解析策略。CSV文件遍历时,每条记录为一个字符串数组,包含多个单独字段。若CSV使用非逗号分隔符,可通过两参数构造函数自定义分隔符。

映射CSV记录至Java对象时,OpenCSV提供两种方法:基于标题的注解@CSVBindByName或基于位置的注解@CSVBindByPosition。对于标题一致的文件,@CSVBindByName注解可自动处理解析数据映射和类型转换,简化流程。当标题与变量名不一致时,可使用注解指定映射标志,以适应特定数据集的结构。若文件无标题,@CSVBindByPosition注解则提供按列位置映射的解决方案。

写入CSV时,OpenCSV提供更多选项,允许从字符串数组或对象列表生成CSV文件。从对象列表写入前需初始化和声明对象。使用字符串数组生成CSV文件时,可通过CSVWriter构造函数指定分隔符,或利用FileWriter或Writer生成文件。通过构造函数参数自定义文件格式、字段和字符常量,实现数据输出的灵活性。未明确指定的参数将使用默认值。

综上所述,OpenCSV凭借其简洁的设计、广泛的适用场景和丰富的功能,成为处理CSV文件的理想选择,无论是读取还是写入,都能提供高效、灵活的解决方案。

Ⅱ java解析csv用什么jar包比较好

CSV其实就是COMMA SEPARATED VALUE的缩写。
在开发中用Java操作csv文件有专门的的API叫javacsv.jar

Ⅲ java 读取csv文件里指定行列的值,比如读取第三行第二列的值。

java读取csv文件,按照指定格式:
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.ArrayList;
import com.csvreader.CsvReader;
import com.csvreader.CsvWriter;
/**
* 读取CSV文件
* 所谓"CSV",是Comma Separated Value(逗号分隔值)的英文缩写,通常都是纯文本文件。
* 可以看成数据库程序与电子表格之间一种中间通信文件,数据库可以导出。csv格式,excel也可以导入并打开。csv文件,例子如下
* sj_mino1001.jpg,715282,4FB55FE8,
* sj_mino1002.jpg,471289,93203C5C,
* sj_mino1003.jpg,451929,C4E80467,
*
*/
public class CSVDeal{
public static void main(String[] args) {
try {
String[] stringList;
String csvFilePath = "C:\\Users\\Administrator\\Desktop\\20140227135936.csv";
String sourceFileString= "C:\\Users\\Administrator\\Desktop\\test.csv";
CsvReader reader = new CsvReader(csvFilePath); //默认是逗号分隔符,UTF-8编码
CsvWriter writer = new CsvWriter(sourceFileString);
/*
* readRecord()判断是否还有记录,getValues()读取当前记录,然后指针下移
*/
reader.readRecord();
writer.writeRecord(reader.getValues()); //读取表头
/*
* 逐行读取,以免文件太大
* 处理表头后面的数据,这里是在第12列数据统一加前缀"V"
*/
while(reader.readRecord()){
stringList = reader.getValues();
stringList[11] = 'V' + stringList[11];
writer.writeRecord(stringList);
}
reader.close();
writer.close();
}catch(Exception ex){
System.out.println(ex);
}
}
}

阅读全文

与java解析csv文件相关的资料

热点内容
51单片机LCD电路 浏览:890
我的世界如何玩宝可梦服务器 浏览:258
天天象棋app怎么找不到了 浏览:658
如何格式化内存卡上加密的照片 浏览:32
上汽大众app哪里上传发票 浏览:115
手机电池加密屏幕加密 浏览:384
基于51系列单片机的智能家居 浏览:584
看新闻看哪个app 浏览:273
android编辑对话框 浏览:308
出租天津服务器云空间 浏览:792
cmd命令结束进程 浏览:445
程序员逗比图片大全 浏览:515
免编程游戏引擎 浏览:375
微信应用锁加密 浏览:460
数字英雄对程序员的影响 浏览:761
程序员培训学校排名 浏览:586
oppo手机如何解开微信的加密 浏览:46
学校论文答辩源码 浏览:75
rp在单片机中 浏览:187
linux软件运行命令 浏览:354