CSV文件处理工具-CsvUtil

news/2024/10/20 4:10:13/

本文章向大家介绍CSV文件处理工具-CsvUtil,主要包括CSV文件处理工具-CsvUtil使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

介绍

逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。

Hutool针对此格式,参考FastCSV项目做了对CSV文件读写的实现(Hutool实现完全独立,不依赖第三方)

CsvUtil是CSV工具类,主要封装了两个方法:

  • getReader 用于对CSV文件读取
  • getWriter 用于生成CSV文件

这两个方法分别获取CsvReader对象和CsvWriter,从而独立完成CSV文件的读写。

使用


读取CSV文件


读取为CsvRow

CsvReader reader = CsvUtil.getReader();
//从文件中读取CSV数据
CsvData data = reader.read(FileUtil.file("test.csv"));
List<CsvRow> rows = data.getRows();
//遍历行
for (CsvRow csvRow : rows) {//getRawList返回一个List列表,列表的每一项为CSV中的一个单元格(既逗号分隔部分)log.info(csvRow.getRawList());
}

CsvRow对象还记录了一些其他信息,包括原始行号等。

读取为Bean列表

首先测试的CSV:test_bean.csv:

姓名,gender,focus,age
张三,男,无,33
李四,男,好对象,23
王妹妹,女,特别关注,22
  1. 定义Bean:
    // lombok注解
    @Data
    private static class TestBean{// 如果csv中标题与字段不对应,可以使用alias注解设置别名@Alias("姓名")private String name;private String gender;private String focus;private Integer age;
    }
  2. 读取:
    final CsvReader reader = CsvUtil.getReader();
    //假设csv文件在classpath目录下
    final List<TestBean> result = reader.read(ResourceUtil.getUtf8Reader("test_bean.csv"), TestBean.class);
  3. 输出:
    CsvReaderTest.TestBean(name=张三, gender=男, focus=无, age=33)
    CsvReaderTest.TestBean(name=李四, gender=男, focus=好对象, age=23)
    CsvReaderTest.TestBean(name=王妹妹, gender=女, focus=特别关注, age=22)

 生成CSV文件

//指定路径和编码
CsvWriter writer = CsvUtil.getWriter("e:/testWrite.csv", CharsetUtil.CHARSET_UTF_8);
//按行写出
writer.write(new String[] {"a1", "b1", "c1"}, new String[] {"a2", "b2", "c2"}, new String[] {"a3", "b3", "c3"}
);

 效果如下:

注意
CSV文件本身为一种简单文本格式,有编码区分。Excel读取CSV文件中含有中文时时必须为GBK编码(Windows平台下),否则会出现乱码。


http://www.ppmy.cn/news/477608.html

相关文章

win10安装时,提示“我们无法创建新的分区,也找不到现有分区”

win10安装时&#xff0c;提示“我们无法创建新的分区&#xff0c;也找不到现有分区”&#xff0c;如图所示&#xff1a; 解决办法&#xff1a; 将win10安装包&#xff08;ios文件&#xff09;解压&#xff0c;将以下文件复制到系统盘&#xff0c;然后重启电脑&#xff0c;自动…

win10装机、我们无法创建新的分区,也找不到现有的分区

用分区助手分区时&#xff0c;仅c盘所在硬盘需要建立ESP分区MSR分区 如果有两块ssd&#xff0c;可以试试先知安装一条用于安装系统&#xff0c;随后再安装另一条ssd

win10系统安装:我们无法创建新的分区,也找不到现有的分区

解决方法:将固态硬盘和机械硬盘中的&#xff0c;ESP分区和MGR分区删除&#xff0c;再进行相应分区&#xff0c;即可成功运行win10安装程序&#xff0c;亲测有效。

无法创建新的分区也找不到现有的分区 解决办法

UEFI安装的时候&#xff0c;提示这个。解决办法就是删除分区&#xff0c;用安装程序再新建分区就可以了。

win10安装无法创建新分区也找不到现有分区问题

我碰到这个问题原因是系统安装到了新的盘&#xff0c;老盘中还存在esp和msr分区&#xff0c;把老盘中esp和msr分区删掉就可以了。我电脑bios是采用UEFI引导&#xff0c;分区格式为gpt&#xff0c;传统模式是mbr&#xff0c;假如分区格式不对应的话也会出现这个问题。 另外假如…

关于windows安装过程中“我们无法创建新的分区,也找不到现有的分区”问题解决办法

最近在安装电脑系统过程中碰到了这个问题&#xff0c;首先说明下我电脑bios已经设置了uefi引导启动&#xff0c;硬盘分区格式也是GPT格式&#xff0c;还是出现这个问题有点纳闷&#xff0c;后面折腾了好久才找到解决办法&#xff1a; 即在对磁盘进行分区的时候不要创建ESP分区…

win10安装时提示 “我们无法创建分区也找不到现有的分区”

试过了网上的很多方法&#xff0c;无论是添加boot文件还是全盘格式化&#xff0c;似乎都不是那么有效果&#xff0c;偶尔自己用拆分分区的方法弄好了&#xff01;特意分享给大家&#xff01; 装机前要用DiskGenius查看分区情况&#xff0c;按理说这种情况下硬盘肯定是都被分区的…

解决无法创建新的分区,也找不到现有的分区。

注意&#xff1a;问题多发生在m2装系统&#xff08;要拔出其他硬盘&#xff09; 原创b站理想与天阳