zoukankan      html  css  js  c++  java
  • java解压zip压缩包

    package com.spring.mvc.zip;

    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.Enumeration;
    import java.util.zip.ZipEntry;

    import org.apache.tools.zip.ZipFile;


    public class zip {

    /**
    * 解压到指定目录
    * @param zipPath
    * @param descDir
    * @author isea533
    */
    public static void unZipFiles(String zipPath,String descDir)throws Exception{
    unZipFiles(new File(zipPath), descDir);
    }
    /**
    * 解压文件到指定目录
    * @param zipFile
    * @param descDir
    * @author isea533
    */
    @SuppressWarnings("rawtypes")
    public static void unZipFiles(File zipFile,String descDir)throws Exception{
    File pathFile = new File(descDir);
    if(!pathFile.exists()){
    pathFile.mkdirs();
    }
    ZipFile zip = new ZipFile(zipFile,"gbk");
    for(Enumeration entries = zip.getEntries();entries.hasMoreElements();){
    ZipEntry entry = (ZipEntry)entries.nextElement();
    String zipEntryName = entry.getName();
    InputStream in = zip.getInputStream((org.apache.tools.zip.ZipEntry) entry);
    String outPath = (descDir+zipEntryName).replaceAll("\*", "/");;
    //判断路径是否存在,不存在则创建文件路径
    File file = new File(outPath.substring(0, outPath.lastIndexOf('/')));
    if(!file.exists()){
    file.mkdirs();
    }
    //判断文件全路径是否为文件夹,如果是上面已经上传,不需要解压
    if(new File(outPath).isDirectory()){
    continue;
    }
    //输出文件路径信息
    System.out.println(outPath);

    OutputStream out = new FileOutputStream(outPath);
    byte[] buf1 = new byte[1024];
    int len;
    while((len=in.read(buf1))>0){
    out.write(buf1,0,len);
    }
    in.close();
    out.close();
    }
    System.out.println("******************解压完毕********************");
    }

    public static void main(String[] args) throws Exception {

    /**
    * 解压文件
    */
    File zipFile = new File("d://zhouzhiwei.zip"); //压缩包地址
    String path = "d://zipfile/"; //被解压到这个路径
    unZipFiles(zipFile, path);
    }
    }

  • 相关阅读:
    docker 容器简单使用
    C++ | 程序编译连接原理
    C++ | 虚拟地址空间
    python学习笔记(十)——进程间通信
    菜鸟教程-c
    现代操作系统-第三版-疑问
    小米C++面经
    面经积累-杂
    哈希表相关题目-leetcode简单
    字符串相关题目-leetcode简单(6-10/共51道)
  • 原文地址:https://www.cnblogs.com/yy123/p/4011261.html
Copyright © 2011-2022 走看看