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; }
执行结果