hutool网址:https://www.hutool.cn/
ZipWriter、ZipReader 链接:https://apidoc.gitee.com/dromara/hutool/
pom文件引入
cn.hutool
hutool-all
5.8.22
一、压缩文件夹、文件
@Test
public void fileCompress(){
// 压缩后的文件路径
String output = "G:/hutool_file/测试2/1.zip";
ZipWriter zipWriter = new ZipWriter(new File(output), Charset.defaultCharset());
//ZipWriter of = ZipWriter.of(new File(output), Charset.defaultCharset()); 第二种写法
// 要压缩的文件夹
String input = "G:/hutool_file/测试1";
zipWriter.add(false,null,new File(input));
// 注意 一定要关闭流
zipWriter.close();
}
这里需要注意:千万记得关闭流,否则压缩后的文件,解压会提示如下错误
二、向压缩文件中追加文件
@Test
public void fileAdd2Compress() throws Exception{
// 压缩后的文件路径
String output = "G:/hutool_file/测试2/1.zip";
ZipWriter zipWriter = new ZipWriter(new File(output), Charset.defaultCharset());
String input = "G:/hutool_file/33.png";
zipWriter.add("33.png",new FileInputStream(new File(input)));
// 注意 一定要关闭流
zipWriter.close();
}
采用此种方式,发现不能实现,会覆盖之前的文件内容,如图:
在gitee上,提问,有人告诉如下办法可以实现:
@Test
public void fileAdd2Compress2(){
// 包路径为:cn.hutool.core.util.ZipUtil
File zipFile = FileUtil.file("G:/hutool_file/测试2/1.zip");
File newFile = FileUtil.file("G:/hutool_file/33.png");
ZipUtil.append(zipFile.toPath(), newFile.toPath());
}
测试成功,如图:
如果您有任何其他的解决方案或建议,请在下面留言分享。您的建议将帮助扩宽我的代码视野,让我能够更好地为用户提供服务。
三、解压文件
@Test
public void fileDecompression(){
String input = "G:/hutool_file/测试2/1.zip";
ZipReader zipReader = ZipReader.of(new File(input), Charset.defaultCharset());
String output = "G:/hutool_file/测试2/1";
zipReader.readTo(new File(output));
zipReader.close();
}
四、过滤要解压的文件
过滤掉,压缩文件中的txt文件
@Test
public void fileDecompressionFilter(){
String input = "G:/hutool_file/测试2/1.zip";
ZipReader zipReader = ZipReader.of(new File(input), Charset.defaultCharset());
String output = "G:/hutool_file/测试2/1";
File file = new File(output);
zipReader.readTo(file, zipEntry -> {
if(zipEntry.getName().indexOf("txt") != -1){
return false;
}else{
return true;
}
});
zipReader.close();
}
解压后的文件夹:
鉴于 Hutool 库提供了如此繁多的方法,我在此仅列举了实际开发过程中可能用到的部分。如果您对其他方法也感兴趣,欢迎访问官网查阅 API 文档,或在下方留言告知您的需求。我将竭力为您提供更多的帮助和支持。
页面更新:2024-03-06
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号