优点: 1、结构简单,易于理解; 2、解析文本和还原文本的方式较为简洁高效; 3、可以轻松转换为Excel的 .xls 文件,亦可以利用 Excel 以表格的方式进行查阅。相比 .xls 文件,其本身由于只存储文本而不包含表格中的公式等其他附带信息,在相同的文件内容下 CSV 文件可以具有更小的文件体积。
缺点: 1、相比于二进制文件,由于是纯文本存储,体积会比较大; 2、虽然由于数据格式参差不齐,具备基本的安全性,但破解的风险依旧很高。
1、可以在Excel中创建保存为 CSV 文件,但是后续对 CSV 文件 *** 作最好用 Notepad++ 等文本编辑器来打开,最好使用 Notepad++;
2、使用Notepad++打开 CSV 文件后,需要将其转码为 UTF-8 格式,这样才能保证文件中的中文被正确显示,而 Excel 存储的文件均不是 UTF-8 编码格式的;
3、在Notepad++中打开 CSV 文件后,会发现多了一个空行,这是 Excel 的存储所导致的。最好把这个空行删掉,以便于程序中计算文件中的真实行数。
Comma-Separated Value ( [卡门 赛婆乱提的] 逗号分隔)(CSV),因分隔符没有严格的要求,可以使用逗号,也可以使用其他字符(如制表符\t,分号等),所以CSV也被称为 逗号分隔或者其他字符分隔值 。csv文件是使用纯文本来存储表格数据(只能存储文本,不能存储二进制)。
构造器涉及到的三个参数:
注:若是设置解析的编码,需要在InputStreamReader对象中设置。
在上面我们可以使用readNext或者readAll进行逐行解读。但是opencsv提供了基于"策略"的映射,将CSV绑定到bean。
注:bean的类型只能为基本数据类型以及String类型,若是BigDecimal类型,那么将会抛出异常。
解析后的bean类:
csv文件:
通俗点就是列位置映射,csv文件中列位置对应到bean中的列。
需要注意的是,该策略会输出所有的行, 故,我们需要跳过某些行。
测试方法:
测试结果:
csv文件:
测试结果:
在csv获取的都是字符串,这种情况下应该使用转换器。将csv中的字段转换为对应的bean中的字段类型。
opencsv为我们提供了上面的两个转换器(我们可以参考,来实现自定义转换器)。使用 AbstractBeanField<T>类来实现转换器。
csv文件
注:若是列映射策略,则要使用@CsvCustomBindByPosition()注解。
测试结果:
所有的过滤器必须实现CsvToBeanFilter 接口
测试结果
(官网)csv官方文档
(官网)CSVParserBuilder——CSVParser的目的是获取单个字符串并根据分隔符,引号和转义字符将其解析为其元素。
(官网)CSVReaderBuilder类
(理论)原CSV类库:OpenCSV
(API)用opencsv文件读写CSV文件
(API)opencsv4.0 自定义规则
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)