Some time we may need to extract zip file and read the contents. Following code will help how to extract .zip files. I collected this program form some blog while searching and I want to share this to all through my blog.
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
public class FileUnZip {
public static void main(String[] args)
{
unzip("D://LatestSample.zip", "D://tmp");
System.out.println("Unzip Completed");
}
public static void unzip(String zipFile,String outputPath){
if(outputPath == null)
outputPath = "";
else
outputPath+=File.separator;
System.out.println(outputPath+=File.separator);
// 1.0 Create output directory
File outputDirectory = new File(outputPath);
if(outputDirectory.exists())
outputDirectory.delete();
outputDirectory.mkdir();
// 2.0 Unzip (create folders & copy files)
try {
// 2.1 Get zip input stream
ZipInputStream zip = new ZipInputStream(new FileInputStream(zipFile));
ZipEntry entry = null;
int len;
byte[] buffer = new byte[1024];
// 2.2 Go over each entry "file/folder" in zip file
while((entry = zip.getNextEntry()) != null){
if(!entry.isDirectory()){
System.out.println("-"+entry.getName());
// create a new file
File file = new File(outputPath +entry.getName());
// create file parent directory if does not exist
if(!new File(file.getParent()).exists())
new File(file.getParent()).mkdirs();
// get new file output stream
FileOutputStream fos = new FileOutputStream(file);
// copy bytes
while ((len = zip.read(buffer)) > 0) {
fos.write(buffer, 0, len);
}
fos.close();
}
zip.close();
}
}catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
public class FileUnZip {
public static void main(String[] args)
{
unzip("D://LatestSample.zip", "D://tmp");
System.out.println("Unzip Completed");
}
public static void unzip(String zipFile,String outputPath){
if(outputPath == null)
outputPath = "";
else
outputPath+=File.separator;
System.out.println(outputPath+=File.separator);
// 1.0 Create output directory
File outputDirectory = new File(outputPath);
if(outputDirectory.exists())
outputDirectory.delete();
outputDirectory.mkdir();
// 2.0 Unzip (create folders & copy files)
try {
// 2.1 Get zip input stream
ZipInputStream zip = new ZipInputStream(new FileInputStream(zipFile));
ZipEntry entry = null;
int len;
byte[] buffer = new byte[1024];
// 2.2 Go over each entry "file/folder" in zip file
while((entry = zip.getNextEntry()) != null){
if(!entry.isDirectory()){
System.out.println("-"+entry.getName());
// create a new file
File file = new File(outputPath +entry.getName());
// create file parent directory if does not exist
if(!new File(file.getParent()).exists())
new File(file.getParent()).mkdirs();
// get new file output stream
FileOutputStream fos = new FileOutputStream(file);
// copy bytes
while ((len = zip.read(buffer)) > 0) {
fos.write(buffer, 0, len);
}
fos.close();
}
zip.close();
}
}catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}