导航:首页 > 编程语言 > 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文件相关的资料

热点内容
精品php源码 浏览:958
自己编写云服务器抢红包 浏览:201
java解压缩文件加密 浏览:886
dlink打印服务器默认地址 浏览:351
php休眠函数 浏览:371
金蝶如何打开服务器 浏览:764
e4a手游辅助源码 浏览:776
什么app可以实时直播 浏览:105
苹果13的app闪退什么原因 浏览:774
尾盘选股源码公式 浏览:449
php日期运算 浏览:930
天龙八部长歌服务器什么时候开的 浏览:198
鬼泣4模型在那个文件夹 浏览:228
单片机的串行口 浏览:57
phpjson转化为数组 浏览:267
pdf导入excel 浏览:427
苹果xsmax信任app在哪里设置 浏览:52
自动外链php源码 浏览:244
我的世界新手奖励箱命令 浏览:145
linux更新vim 浏览:997