100个Java工具类之74:压缩与解压利器类ZipUtils

createh52个月前 (03-11)技术教程19

日常数据处理需求中,文件压缩与解压是必不可少,而ZipUtils就是一个非常实用的工具类,他拥有文件和文件夹的压缩及解压功能。并且支持将多个文件和目录压缩为一个ZIP文件,并从ZIP文件中解压文件。



ZipUtils的主要方法

  1. 压缩单个文件
String sourceFilePath = "D:/java/file.txt";
        String zipFilePath = "D:/java/file.zip";
        ZipUtils.zip(sourceFilePath, zipFilePath);
        System.out.println("文件压缩成功!");



  1. 压缩目录
String sourceDirPath = "D:/java/directory";
        String zipFilePath = "D:/java/directory.zip";
        ZipUtils.zip(sourceDirPath, zipFilePath);
        System.out.println("目录压缩成功!");
  1. 解压ZIP文件
String zipFilePath = "D:/java/file.zip";
        String destDirPath = "D:/java/directory";
        ZipUtils.unzip(zipFilePath, destDirPath);
        System.out.println("ZIP文件解压成功!");



  1. 压缩多个文件到一个ZIP文件
List filesToZip = Arrays.asList(
            new File("D:java/file1.txt"),
            new File("D:java/file2.jpg"),
            new File("D:java/file3.docx")
        );
        String zipFilePath = "D:java/files.zip";
        ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipFilePath));
        for (File file : filesToZip) {
            zos.putNextEntry(new ZipEntry(file.getName()));
            FileInputStream fis = new FileInputStream(file);
            byte[] buffer = new byte[1024];
            int len;
            while ((len = fis.read(buffer)) != -1) {
                zos.write(buffer, 0, len);
            }
            zos.closeEntry();
            fis.close();
        }
        zos.close();
        System.out.println("多个文件压缩成功!");

ZipUtils通过提供易于使用的API和递归处理文件夹内所有文件的能力,无论单个压缩文件、目录,批量处理多个文件到一个ZIP文件,还是解压ZIP文件到指定目录,ZipUtils都能轻松应对。


相关文章

《调教命令行07》压缩解压(有64KB彩蛋)

原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。任何不保留此声明的转载都是抄袭。压缩,是一件非常神奇的事情。很久很久之前,就接触过一些64KB大小的电影,你花半小时都看不完...

Java代码保护方法之四:JVMTI实现Java源码保护

大家好,我叫小丁,一名小小程序员。今天继续介绍Java代码保护的第四种方案:JVMTI。采用ClassFinal和自定义类加载器这两种策略来保护Java代码时,它们面临的一个共同的主要挑战在于:加解密...

服务器上修改基于springboot的jar包文件

问题描述现在基于springboot的服务器jar包体积越来越大, 当我们在特殊场景下,比如压力测试或者排查问题想临时修改下jar包里的内容验证下, 是不是非要重新打包上传文件呢? 答案当然是否。解决...

做了个Java打包工具,可以双击启动了!

日常工作主要使用Java进行开发,业余时间也热衷于技术研究,喜欢用Java的GUI库Swing开发一些实用的小工具。但是用Swing开发软件相比C/C++的一个很大的劣势就是,Java打包出来的文件不...

Java实现LWZ压缩算法

本篇目录 通过阅读本篇文章你可以学习到: 什么是LWZ压缩算法发展历程实现思路Java代码实现什么是LWZ压缩算法LWZ 是一种通过建立字符串字典, 用较短的代码来表示较长的字符串来实现压缩的无损压缩...