最近有個需求:解析多種格式文件數據,這想起來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文件,開發不易,學會偷懶才難得糊塗。
