Created
June 13, 2012 18:21
-
-
Save php-coder/2925636 to your computer and use it in GitHub Desktop.
Improved version for extracting ZIP archive (from http://www.mkyong.com/java/how-to-decompress-files-from-a-zip-file/)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.mkyong.zip; | |
import java.io.File; | |
import java.io.FileInputStream; | |
import java.io.FileOutputStream; | |
import java.io.IOException; | |
import java.util.List; | |
import java.util.zip.ZipEntry; | |
import java.util.zip.ZipInputStream; | |
public class UnZip | |
{ | |
List<String> fileList; | |
private static final String INPUT_ZIP_FILE = "C:\\MyFile.zip"; | |
private static final String OUTPUT_FOLDER = "C:\\outputzip"; | |
public static void main( String[] args ) | |
{ | |
UnZip unZip = new UnZip(); | |
unZip.unZipIt(INPUT_ZIP_FILE,OUTPUT_FOLDER); | |
} | |
/** | |
* Unzip it | |
* @param zipFile input zip file | |
* @param output zip file output folder | |
*/ | |
public void unZipIt(String zipFile, String outputFolder){ | |
byte[] buffer = new byte[1024]; | |
try{ | |
//create output directory is not exists | |
File folder = new File(OUTPUT_FOLDER); | |
if(!folder.exists()){ | |
folder.mkdir(); | |
} | |
//get the zip file content | |
ZipInputStream zis = | |
new ZipInputStream(new FileInputStream(zipFile)); | |
//get the zipped file list entry | |
ZipEntry ze = zis.getNextEntry(); | |
while(ze!=null){ | |
String fileName = ze.getName(); | |
File newFile = new File(outputFolder + File.separator + fileName); | |
System.out.println("file unzip : "+ newFile.getAbsoluteFile()); | |
//create all non exists folders | |
//else you will hit FileNotFoundException for compressed folder | |
new File(newFile.getParent()).mkdirs(); | |
if (!ze.isDirectory()) { | |
FileOutputStream fos = new FileOutputStream(newFile); | |
int len; | |
while ((len = zis.read(buffer)) > 0) { | |
fos.write(buffer, 0, len); | |
} | |
fos.close(); | |
} | |
ze = zis.getNextEntry(); | |
} | |
zis.closeEntry(); | |
zis.close(); | |
System.out.println("Done"); | |
}catch(IOException ex){ | |
ex.printStackTrace(); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment