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

createh53个月前 (03-11)技术教程30

日常数据处理需求中,文件压缩与解压是必不可少,而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都能轻松应对。


相关文章

Java 加密解密PowerPoint文档

在日常办公时,我们常会用PowerPoint幻灯片来制作设计方案、年终总结等。这类幻灯片中的内容大多会涉及一些重要的数据信息,为了避免泄露造成损失,我们时常需要对其进行加密保护。本教程将演示如何在Ja...

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

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

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

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