unpack Zip - Java File Path IO

Java examples for File Path IO:Zip File

Description

unpack Zip

Demo Code


//package com.java2s;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Enumeration;
import java.util.zip.ZipEntry;

import java.util.zip.ZipFile;

public class Main {
    private static final int BUFFER = 2048;

    public static void unpackZip(String zipFile, String location) {
        try {/* w w  w.  j a  va2 s.co m*/
            File fSourceZip = new File(zipFile);
            // File temp = new File(zipPath);
            // temp.mkdir();

            // Extract entries while creating required sub-directories
            ZipFile zf = new ZipFile(fSourceZip);
            Enumeration<?> e = zf.entries();

            while (e.hasMoreElements()) {
                ZipEntry entry = (ZipEntry) e.nextElement();
                File destinationFilePath = new File(location,
                        entry.getName());

                // create directories if required.
                destinationFilePath.getParentFile().mkdirs();

                // if the entry is directory, leave it. Otherwise extract it.
                if (entry.isDirectory()) {
                    continue;
                } else {
                    // Get the InputStream for current entry of the zip file
                    // using InputStream getInputStream(Entry entry) method.
                    BufferedInputStream bis = new BufferedInputStream(
                            zf.getInputStream(entry));

                    int b;
                    byte buffer[] = new byte[BUFFER];

                    // read the current entry from the zip file, extract it and
                    // write the extracted file.
                    FileOutputStream fos = new FileOutputStream(
                            destinationFilePath);
                    BufferedOutputStream bos = new BufferedOutputStream(
                            fos, BUFFER);

                    while ((b = bis.read(buffer, 0, 1024)) != -1) {
                        bos.write(buffer, 0, b);
                    }

                    bos.flush();
                    bos.close();
                    bis.close();
                }
            }

            zf.close();
        } catch (IOException ioe) {
            ioe.printStackTrace();
        }
    }
}

Related Tutorials