Java ZIP(二)

来源:互联网 发布:电脑看淘宝手机店铺 编辑:程序博客网 时间:2024/06/04 19:44

1. 概述

2. 实例

import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util.Enumeration;import java.util.zip.ZipEntry;import java.util.zip.ZipFile;public class DecompressFiles {    private final static int BUF_SIZE = 1024 * 8;    private final static String path = "C:\\Users\\Administrator\\Desktop";    private final static String zipPath = "C:\\Users\\Administrator\\Desktop\\test.zip";    public static void main(String[] args) throws IOException {        decompressFiles();    }    private static void decompressFiles() throws IOException {        File file = new File(zipPath);        ZipFile zip = new ZipFile(file);        try {            Enumeration<ZipEntry> entries = (Enumeration<ZipEntry>) zip.entries();            while (entries.hasMoreElements()) {                ZipEntry entry = (ZipEntry) entries.nextElement();                String name = entry.getName();                InputStream in = zip.getInputStream(entry);                copyFile2OutStream(in, name);            }        } finally {            zip.close();        }    }    /**     * 拷贝文件     * */    private static void copyFile2OutStream(InputStream in, String fileName) throws IOException {        File file = new File(path + File.separator + fileName);        if (file.isFile()) {            file.delete();            file.createNewFile();        }        OutputStream out = new FileOutputStream(file);        try {            inputStream2OutputStream(in, out);        } finally {            out.close();        }    }    private static void inputStream2OutputStream(InputStream in, OutputStream out) throws IOException {        byte[] buffer = new byte[BUF_SIZE];        int count = 0;        while ((count = in.read(buffer)) != -1) {            out.write(buffer, 0, count);        }    }}

这里写图片描述