• 大小: 162KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-06-24
  • 语言: Java
  • 标签: Zip  压缩  解压  ZipFile  

资源简介

使用 Java 语言实现并封装的创建 ZIP 格式的压缩文件并解压到指定目录和解压 ZIP 文件到指定目录的工具类。

资源截图

代码片段和文件信息

import com.sun.istack.internal.NotNull;

import java.io.*;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;

/**
 * This is util class to compress file to a zip file and decompress zip file to normal file
 * Author: 指点
 */

public class ZipUtils {

    /**
     * compress file or dictionary what named inputName by zip form and save it to the load of outputName as a zip file
     * if param inputName is null or the file of it represent is not exists
     * this method will throws new IllegalArgumentException;
     * 以 zip 格式压缩路径为 inputName 的文件/文件夹,并且将其压缩后的 zip 文件保存在路径为 outputName 的文件,
     * 如果 inputName 所代表的文件/文件夹不存在,将会抛出一个 IllegalArgumentException
     * @param inputName the file of you want to compress
     * @param outputName the output file path which you want to save the zip file
     */
    public static void compressFile(@NotNull String inputName @NotNull String outputName) throws IOException {
        if (inputName == null || outputName == null) {
            throw new IllegalArgumentException(“input name and output name can‘t be null“);
        }
        File inputFile = new File(inputName);
        if (!inputFile.exists()) {
            throw new IllegalArgumentException(“The input file does not exists!“);
        }
        // 创建一个新的 ZipOutputStream 对象
        ZipOutputStream output = new ZipOutputStream(new FileOutputStream(outputName));
        System.out.println(“正在压缩中...“);
        long startTime = System.currentTimeMillis();
        // 设置压缩文件注释
        output.setComment(“This is my zip file“);
        // 开始压缩文件
        zipFile(output inputFile ““);
        long endTime = System.currentTimeMillis();
        System.out.println(“压缩完成“);
        System.out.println(“压缩用时:“ + String.valueOf(((double) endTime-startTime)/1000) + “秒“);
        // 结束压缩文件
        output.close();
    }

    /**
     * decompress the zip file to specific path
     * 将 zip 文件解压缩到 outputName 所代表的文件夹中,确保 outputName 为一个已存在的文件夹
     * @param inputName the zip file path which you want to decompress
     * @param outputName the folder path what you want to save the result files
     *                   please make sure the folder of outputName represent is exists
     */
    public static void decompressFile(@NotNull String inputName @NotNull String outputName) {
        if (inputName == null || outputName == null) {
            throw new IllegalArgumentException(“input path and output path can‘t be null“);
        }
        File outputDir = new File(outputName);
        // 如果输出目录不存在,那么新建一个文件夹
        if (!outputDir.exists()) {
            outputDir.mkdirs();
        }
        try {
            System.out.println(“正在解压中...“);
            long startTime = System.currentTimeMillis();
            // 创建 ZipFile 对象来解压 ZIP 文件
            ZipFile zipFile = new ZipFile(inputName);
            // 解压文件
            unzipFile(

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-12-05 00:30  ZipFileTest\
     目录           0  2017-12-05 00:29  ZipFileTest\.idea\
     目录           0  2017-12-04 19:57  ZipFileTest\.idea\inspectionProfiles\
     目录           0  2017-12-04 19:57  ZipFileTest\.idea\libraries\
     文件         210  2017-12-04 19:57  ZipFileTest\.idea\libraries\testFile.xml
     文件         234  2017-12-04 20:18  ZipFileTest\.idea\misc.xml
     文件         262  2017-12-04 19:57  ZipFileTest\.idea\modules.xml
     文件       21968  2017-12-05 00:29  ZipFileTest\.idea\workspace.xml
     目录           0  2017-11-28 22:27  ZipFileTest\out\
     目录           0  2017-11-28 22:27  ZipFileTest\out\production\
     目录           0  2017-12-05 00:21  ZipFileTest\out\production\ZipFileTest\
     文件        5053  2017-12-05 00:21  ZipFileTest\out\production\ZipFileTest\ZipUtils.class
     目录           0  2017-12-05 00:23  ZipFileTest\src\
     文件        8050  2017-12-05 00:23  ZipFileTest\src\ZipUtils.java
     目录           0  2017-12-04 21:32  ZipFileTest\testFolder\
     文件           9  2017-11-28 22:25  ZipFileTest\testFolder\文本1.txt
     目录           0  2017-12-04 21:32  ZipFileTest\testFolder\测试文件夹2\
     文件      286918  2017-09-09 21:14  ZipFileTest\testFolder\测试文件夹2\魁拔之书.txt
     文件         423  2017-12-04 19:57  ZipFileTest\ZipFileTest.iml

评论

共有 条评论