• 文件解压


    package com.xfm.utils;

    import org.apache.tools.zip.ZipEntry;
    import org.apache.tools.zip.ZipFile;

    import java.io.*;
    import java.util.Enumeration;

    /**
    * 解压Zip文件工具类
    *
    * @author xfm
    */
    public class Decompress {
    private static final int buffer = 2048;

    /**
    * 解压Zip文件
    *
    * @param path 文件目录
    */
    public static void unZip(String path) {
    int count = -1;
    String savepath = "";

    File file = null;
    InputStream is = null;
    FileOutputStream fos = null;
    BufferedOutputStream bos = null;
    //保存解压文件目录
    savepath = path.substring(0, path.lastIndexOf(".")) + File.separator;
    //创建保存目录
    new File(savepath).mkdir();
    ZipFile zipFile = null;
    try {
    //解决中文乱码问题
    zipFile = new ZipFile(path, "gbk");
    Enumeration<?> entries = zipFile.getEntries();

    while (entries.hasMoreElements()) {
    byte buf[] = new byte[buffer];

    ZipEntry entry = (ZipEntry) entries.nextElement();

    String filename = entry.getName();
    boolean ismkdir = false;
    //检查此文件是否带有文件夹
    if (filename.lastIndexOf("/") != -1) {
    ismkdir = true;
    }
    filename = savepath + filename;
    //如果是文件夹先创建
    if (entry.isDirectory()) {
    file = new File(filename);
    file.mkdirs();
    continue;
    }
    file = new File(filename);
    //如果是目录先创建
    if (!file.exists()) {
    if (ismkdir) {
    //目录先创建
    new File(filename.substring(0, filename.lastIndexOf("/"))).mkdirs();
    }
    }
    file.createNewFile(); //创建文件

    is = zipFile.getInputStream(entry);
    fos = new FileOutputStream(file);
    bos = new BufferedOutputStream(fos, buffer);

    while ((count = is.read(buf)) > -1) {
    bos.write(buf, 0, count);
    }
    bos.flush();
    bos.close();
    fos.close();

    is.close();
    }

    zipFile.close();

    } catch (IOException ioe) {
    ioe.printStackTrace();
    } finally {
    try {
    if (bos != null) {
    bos.close();
    }
    if (fos != null) {
    fos.close();
    }
    if (is != null) {
    is.close();
    }
    if (zipFile != null) {
    zipFile.close();
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }


    public static void main(String[] args) {
    unZip("E:\tobiasy_decompiler_v2.4.0_SNAPSHOT.zip");
    }
    }
  • 相关阅读:
    东南大学2021年高等代数
    北京师范大学2021年数学分析
    华东师范大学2021年数学分析考研试题参考解答修正版
    中国科学院大学2021年数学分析考研试题参考解答
    [数学考研竞赛00052]浙江大学2021年数学分析考研试题参考解答
    python3.6, cv2.imread()导入图片失败,none
    python商品分类信息
    mongodb 聚合(Map-Reduce)
    mongodb 聚合(aggregate)
    Java-Security(七):Spring Security方法注解认证启用
  • 原文地址:https://www.cnblogs.com/tobiasy/p/8258430.html
Copyright © 2020-2023  润新知