解压zip

2018-11-08  本文已影响7人  咚了个汐
    public static void decompress(String srcPath, String dest) throws Exception {

        File file = new File(srcPath);

        if (!file.exists()) {

            throw new RuntimeException(srcPath + "所指文件不存在");

        }

        ZipFile zf = new ZipFile(file);

        Enumeration entries = zf.entries();

        ZipEntry entry = null;

        while (entries.hasMoreElements()) {

            entry = (ZipEntry) entries.nextElement();

            System.out.println("解压" + entry.getName());

            if (entry.isDirectory()) {

                String dirPath = dest + File.separator + entry.getName();

                File dir = new File(dirPath);

                dir.mkdirs();

            } else {

                // 表示文件

                File f = new File(dest + File.separator + entry.getName());

                if (!f.exists()) {
                    String dirs = f.getParent();

                    File parentDir = new File(dirs);

                    parentDir.mkdirs();

                }

                f.createNewFile();

                // 将压缩文件内容写入到这个文件中

                InputStream is = zf.getInputStream(entry);

                FileOutputStream fos = new FileOutputStream(f);

                int count;

                byte[] buf = new byte[8192];

                while ((count = is.read(buf)) != -1) {

                    fos.write(buf, 0, count);

                }

                is.close();

                fos.close();

            }

        }

    }
上一篇下一篇

猜你喜欢

热点阅读