JAVA解压ZIP文件

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipException;
import java.util.zip.ZipFile;

public class ZipUtil {

    public static void unzip(String zipFile){
        // 要解压文件路径
        File file = new File(zipFile);
        if(!file.exists() || !file.isFile()){
            return;
        }
        // 文件当前文件夹
        String basePath = file.getParent();
        // 缓冲区大小
        int buffersize = 1024;
        int count = 0;
        // 缓冲区
        byte[] buffer = new byte[buffersize];
        try {
            // Zip文件
            ZipFile zfile = new ZipFile(file);
            // 获取Zip包里的所有元素
            Enumeration<ZipEntry> zips = (Enumeration<ZipEntry>) zfile.entries();
            // 遍历Zip包里的所有元素
            while(zips.hasMoreElements()){
                // 获取文件
                ZipEntry entry = zips.nextElement();
                // 文件名
                String name = entry.getName();
                // 解压后文件的全路径
                String filePath = basePath + File.separator + name;
                // 处理zip文件包含文件夹
                if(entry.isDirectory()){
                    System.out.println("isDirectory");
                    File path = new File(filePath);
                    if(!path.exists()){
                        path.mkdir();
                    }
                    continue;
                }
                // 获取压缩文件输入流
                InputStream in = zfile.getInputStream(entry);
                // 带缓冲的输入流
                BufferedInputStream bis = new BufferedInputStream(in);
                // 带缓冲的输入流
                BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(filePath));
                // 从输入流中读取字节并写入输出流中
                while((count = bis.read(buffer, 0, buffersize)) != -1){
                    bos.write(buffer, 0, count);
                }
                // 释放资源
                bos.flush();
                bos.close();
                bos.close();

            }
            // 关闭文件
            zfile.close();
        } catch (ZipException e) {

        } catch (IOException e) {

        }
    }

    public static void main(String[] args) {
        ZipUtil.unzip("E:\\pics.zip");
    }
}

时间: 2024-07-31 10:52:55

JAVA解压ZIP文件的相关文章

java解压zip文件至指定文件夹

前面,笔者讲到.如何把文件打包为zip包,那么反过来怎么把zip文件包解压为正常文件呢?把zip包解压为正常文件包,要比把文件打包为zip简单一点.因为存在多级文件的压缩,却不存在多级文件的解压缩.也就是说,压缩时,你要把所有文件都塞到压缩包里.而解压缩只需要解压一级,压缩包里面的压缩文件则不必理会.直接上代码喽: /** * 解压文件 * @param zipPath 要解压的目标文件 * @param descDir 指定解压目录 * @return 解压结果:成功,失败 */ @Suppr

Java 上传解压zip文件,并且解析文件里面的excel和图片

需求:上传一个zip文件,zip文件里面包含一个excel和很多图片,需要把excel里面的信息解析出来保存到表中,同时图片也转化成base64保存到数据库表中. PS:为了方便不同水平的开发人员阅读,我把代码全部写到Controller里面.这个demo的file入参的类型是MultipartFile,很多网上的例子是File类型.这两个类型在解析文件的时候还是有点区别的. 第①个方法: 1 /** 2 * 这个deomo入参的类型是MultipartFile,很多网上的例子是File类型 3

android zip4j之--解压zip文件并实时显示解压进度

Zip文件是我们经常用到压缩文件格式,android中在进行网络请求大批量数据时,通常会采用传递zip文件,这样做即可以减少网络流量的消耗,加快请求的响应速度,又可以减少对存储空间的要求,所以当我们将zip文件读取回来的时候,如何解压就是一个要解决的问题,虽然java本身提供了zip相关的API,但不是很强大,所以我们采用apache开源组织的zip4j,通过这个jar包可以十分轻松的解压zip文件. 回到项目中去,项目中有个需求是从服务器请求杂志,请求回来后给读者展示,但是由于公司自己做的电子

java 解压 zip 包并删除

需求是这样的,  在服务器上有 运营上传的zip 包,内容是用户的照片,我需要做的是 获取这些照片上传,并保存到 数据库. 这里面的 上传照片,保存数据库都不难,主要问题是解压zip包,和删除zip 包,以及 解压后的文件. 之前在网上找的解压的文件的代码,都存在同一个问题,就是解压之后,无法删除 zip 包.查百度说是 资源占用,可是我已经把所有的流都关闭了哇. 我把解压和删除分成两部分用 jUnit  测试:   第一次测试解压,并不删除包:第二次只删除包.我发现,解压方法和删除方法在同一个

通过javascript在网页端解压zip文件并查看压缩包内容

WEB前端解压ZIP压缩包 web前端解压zip文件有什么用: 只考虑标准浏览器的话, 服务器只要传输压缩包到客户端, 节约了带宽, 而且节约了传输时间, 听起来好像很厉害的说:     如果前端的代码很多, 而且包含大副的图片,那么就可以把js和css和jpg和png等各种数据通过服务端打包成zip传送到浏览器, 浏览器负责解压, css实用动态生成插入到dom中,js也用globalEval直接执行, jpg或者png各种图片文件由blob流转化为image, 直接插入到浏览器中: html

ubuntu解压zip文件中文乱码问题

通过unzip行命令解压,指定字符集 unzip -O CP936 xxx.zip 注:xxx.zip为需要解压的文件名 ubuntu解压zip文件中文乱码问题

基于Android下载并解压Zip文件,更新UI简单帮助类

类似于:http://blog.csdn.net/jarlen/article/details/44794031 下载文件: /** * 下载文件 * * @param down_url * @param output * @param tmpDir */ private void download(String down_url, File output, File tmpDir) { InputStream inputStream = null; OutputStream outputStr

PHP扩展类ZipArchive实现压缩解压Zip文件和文件打包下载

PHP扩展类ZipArchive实现压缩解压Zip文件和文件打包下载 http://my.oschina.net/junn/blog/104464 PHP ZipArchive 是PHP自带的扩展类,可以轻松实现ZIP文件的压缩和解压,使用前首先要确保PHP ZIP 扩展已经开启,具体开启方法就不说了,不同的平台开启PHP扩增的方法网上都有,如有疑问欢迎交流.这里整理一下常用的示例供参考. 一.解压缩zip文件 ? 1 2 3 4 5 6 7 8 9 10 11 $zip = new ZipAr

Ubuntu中解决解压zip文件中文乱码问题

1. 通过unzip行命令解压,指定字符集 unzip -O CP936 xxx.zip (用GBK, GB18030也可以) 有趣的是unzip的manual中并无这个选项的说明, unzip --help对这个参数有一行简单的说明. 2. 在环境变量中,指定unzip参数,总是以指定的字符集显示和解压文件 /etc/environment中加入2行 UNZIP="-O CP936" ZIPINFO="-O CP936"Ubuntu中解决解压zip文件中文乱码问题