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

  getReader 用于对CSV文件读取

  getWriter 用于生成CSV文件

1、读取文件

  读取为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中的一个单元格(既逗号分隔部分)
Console.log(csvRow.getRawList());
}

  读取为Bean列表

CsvReader csvReader = CsvUtil.getReader();
//使用GBK编码,否则中文出现乱码,
// 若使用Utf8 可以直接使用ResourceUtil.getUtf8Reader("test2.csv")
List<BeanDto> rows = csvReader.read(ResourceUtil.getReader("test2.csv", CharsetUtil.CHARSET_GBK), BeanDto.class);
for (BeanDto bean : rows) {
System.out.println(bean);
}

读取为Bean时,第一行是标题,必须与Bean的属性名一致,如果不一致可以使用@Alias("csv文件中名称")注解,该注解作用在属性上,例如

@Data
public class BeanDto { @Alias("设备内码")
private String indexCode; @Alias("IP地址")
private String address; @Alias("端口号")
private Integer port; @Alias("设备账号")
private String userName; }

执行结果

最新文章

  1. 小白Linux入门 一
  2. LNMP平台搭建---MySQL安装篇
  3. 用sublime写出的第一个网页
  4. fiddler,https抓包设置
  5. mac xcworkspace xcodebuild
  6. CommonsChunkPlugin的使用(关于angular2中的polyfills和vendor的疑问解决)
  7. java web每天定时执行任务
  8. Memcached缓存入门篇
  9. 关于【IE兼容】的都在这
  10. LINQ to XML编程之编程基础
  11. 三十天学不会TCP,UDP/IP网络编程-ARP -- 连接MAC和IP
  12. XML之DTD(文档类型定义)
  13. Django(三)runserver 命令源码分析
  14. html5+hbuilder+夜神模拟器+webview
  15. 论文翻译:BinaryConnect: Training Deep Neural Networks with binary weights during propagations
  16. Client-Side Template Injection with AngularJS
  17. Spring Boot 线程池
  18. 【转】LVDS基础、原理、图文讲解
  19. 怎样使用md命令一次建立多级子目录
  20. 项目Alpha冲刺(团队2/10)

热门文章

  1. 【LeetCode】剑指 Offer 04. 二维数组中的查找
  2. 第48篇-native方法调用解释执行的Java方法
  3. DEEP DOUBLE DESCENT: WHERE BIGGER MODELS AND MORE DATA HURT
  4. 论文翻译:2020_ACOUSTIC ECHO CANCELLATION WITH THE DUAL-SIGNAL TRANSFORMATION LSTM NETWORK
  5. 【Redis的那些事 &#183; 续集】Redis的位图、HyperLogLog数据结构演示以及布隆过滤器
  6. 【jvm】09-full gc分析思路
  7. MySQL数据操作与查询笔记 • 【第4章 SELECT 数据查询】
  8. RSA非对称加密算法实现:Python
  9. 经典定长指令-修改EIP
  10. 历时5月,Kubernetes1.19正式发布 !Ingress迎来GA,存储容量跟踪新特性