最近有个需求:解析多种格式文件数据,这想起来hutool支持多种文件的解析,做个笔记记录一下,仅仅是简单应用,网络上也有比较详细的文档介绍。
OK,先做准备工作,引入依赖包如下,版本自选:
<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.3.5</version> </dependency>
1.解析csv文件:CsvUtil
CsvReader reader = CsvUtil.getReader(); //设置文件读取的分隔符 reader.setFieldSeparator(separator.toCharArray()[0]); //根据特定的编码方式读取File的内容 CsvData csvData = reader.read(file,Charset.forName(encode)); //读取文件中的所有的行数据 List<CsvRow> rows = csvData.getRows(); //若有标题,则获取首行标题 List<String> firstRawList = rows.get(0).getRawList();
在读取到文件的内容后,就可以进行自己的业务编码了,hutool的工具类相对比较轻量化,简单易用。
2.解析Excel文件:ExcelUtil
//读取Excel文件的内容-选定工作表名读取 ExcelReader reader = ExcelUtil.getReader(file,fileSheetName); //根据指定行开始读取所有的内容 List<List<Object>> rows = reader.read(1, reader.getRowCount()); //在获取到所有的数据后,要关闭reader(切记),操作文件总是失败,最后才发现在service调用没有关闭流,粗心大意了! reader.close();
3.解析JSON文件:JSONUtil
//根据特定的字符集编码读取JSON文件 JSONObject jsonObject = JSONUtil.readJSONObject(file, Charset.forName(encode));
4.总结:hutool是一款非常强大的工具组件,不仅仅对文件,对项目中很多的开发提供方便的工具类,在工作中也用到了xml文件的解析,个人用起来不太强大,所以引用的dom4j来解析读取XML文件,开发不易,学会偷懒才难得糊涂。