hutool是近几年非常火的工具包,里面包含了我们日常开发常用的工具类,这里我们以zip压缩文件为例演示一下具体操作方法
首先我们创建一个压缩文件,目录为 D:\\zip\\测试.zip
里面存放两个excel文件
操作用例如下:
public static void main(String[] args){
String path="D:\\zip\\测试.zip";
File file=new File(path);
//读取压缩文件,这里中文名称需要使用GBK编码格式
File unzip = ZipUtil.unzip(file, Charset.forName("gbk"));
//解压完是一个目录
if(FileUtil.isDirectory(unzip)){
//循环遍历目录里面的文件
List<File> fileList = FileUtil.loopFiles(unzip);
for(File f:fileList){
String name = f.getName();
//利用excel工具类读取excel内容
ExcelReader reader = ExcelUtil.getReader(f);
List<Map<String, Object>> list = reader.readAll();
System.out.println("文件名称:"+name);
System.out.println("文件内容如下:");
//打印文件内容
System.out.println(JSONUtil.toJsonStr(list));
}
}
}
ZipUtil
的unzip方法获取到解压目录,然后通过FileUtil.loopFiles
遍历目录,从而读取文件内容。
当然在利用接口上传文件时,我们需要将 MutipartFile
转为临时文件,然后再进行解压操作具体如下:
public void importZipfile(MultipartFile file) throws IOException {
//生成后缀为.zip的临时文件
File tempFile = FileUtil.createTempFile(".zip", true);
//将上传的文件写入临时文件
FileUtil.writeFromStream(file.getInputStream(),tempFile);
//解压压缩文件
File unzip = ZipUtil.unzip(tempFile, Charset.forName("gbk"));
try {
//做业务处理
//TODO
}finally {
//删除压缩包
if(FileUtil.exist(tempFile)){
FileUtil.del(tempFile);
}
//删除解压文件
if(FileUtil.exist(unzip)){
FileUtil.del(unzip);
}
}
}
以上就是hutool工具类ZipUtil的基本用法,实际开发中可根据自己的需要查询相关api进行定制开发。
没有回复内容