JAVA实现--解压ZIP格式的压缩包

一、Zip4j介绍

zip4j官网:http://www.lingala.net/zip4j/可以在"download"页面下载官方示例进行学习。

特征:

从Zip文件创建,添加,提取,更新,删除文件;

读/写受密码保护的Zip文件和流;

支持AES 128/256加密,支持标准邮编加密;

支持Zip64格式

支持存储(无压缩)和Deflate压缩方法

从Split Zip文件创建或提取文件(例如:z01,z02,... zip)

支持zip 中的Unicode文件名和注释* Progress Monitor- 集成到应用程序和面向用户的应用程序

进度监视器

二、需要的引入的jar包

    net.lingala.zip4j

    zip4j

    2.7.0

三、压缩整个文件夹

import java.io.File;

import net.lingala.zip4j.ZipFile;

import net.lingala.zip4j.exception.ZipException;

import net.lingala.zip4j.model.ZipParameters;

import net.lingala.zip4j.model.enums.CompressionLevel;

import net.lingala.zip4j.model.enums.CompressionMethod;

public class ZipFiles {

private  void zipFile() throws ZipException {

        // 生成的压缩文件

        ZipFile zipFile = new ZipFile("D:\\test.zip");

        ZipParameters parameters = new ZipParameters();

        // 压缩方式

        parameters.setCompressionMethod(CompressionMethod.STORE);

        // 压缩级别

        parameters.setCompressionLevel(CompressionLevel.FAST);

        // 要打包的文件夹

        File currentFile = new File("D:\\test");

        File[] list = currentFile.listFiles();

        // 遍历test文件夹下所有的文件、文件夹

        for (File f : list) {

            if (f.isDirectory()) {

            zipFile.addFile(f.getPath(), parameters);


            } else {

                zipFile.addFile(f, parameters);

            }

        }

    }

public static void main(String[] args) {

// TODO Auto-generated method stub

ZipFiles zf = new ZipFiles();

try {

zf.zipFile();

} catch (ZipException e) {

// TODO Auto-generated catch block

e.printStackTrace();

        }

    }

}

四、




解压ZIP格式的文件

public static void unzip(String srcFile,String  destDirPath) {

         long startTime=System.nanoTime();   //获取开始时间

         try {

             /** 判断文件是否存在 */

             File file = new File(srcFile);

             if (file.exists()) {

                 /** 判断文件是否是zip格式的压缩文件  */

                 // 获取文件的后缀

                 String fileSuffix =  file.getName().substring(file.getName().lastIndexOf("."));

                 if (".zip".equals(fileSuffix)) {

                      net.lingala.zip4j.core.ZipFile zipFile = new  net.lingala.zip4j.core.ZipFile(srcFile);

                      // 设置编码格式中文设置为GBK格式

                      zipFile.setFileNameCharset("GBK");

                      // 解压压缩包

                      zipFile.extractAll(destDirPath);

                 }

             }

         } catch (Exception e) {

             e.printStackTrace();

         }

         long endTime=System.nanoTime(); //获取结束时间  

         System.out.println("程序运行时间:  "+(endTime-startTime)+"ns");

         System.out.println("程序运行时间:  "+(endTime-startTime)/1000000+"ms");

         System.out.println("程序运行时间:  "+(endTime-startTime)/1000000000+"s");

    }

你可能感兴趣的:(JAVA实现--解压ZIP格式的压缩包)