Unzip a ZIP File
How to unzip (extract) a zip file? How to retrieve
elements from a zip format file? All these type of questions are solved through
the following example. This program shows you how to extract files from a zip
file in which many different files are stored in compressed format and make a
single zip file.
There are various type methods and APIs are explained
as follows which are used in the following program to retrieve all the
compressed elements from the zip file.
ZipEntry:
This is the class of java.util.zip.*; package of Java which is used
to zip file entries.
ZipFile.entries():
Above method of the ZipFile class gets the files entries of the zip
file format.
Enumeration.hasMoreElement():
This method checks whether more element elements are present or not for the
zip file which are enumerated.
Enumeration.nextElement():
This method gives you the next elements from the list of the files, which
are compressed and stored in the zip file.
Here is the code of the program:
import java.util.*;
import java.util.zip.*;
import java.io.*;
public class ZipRetrieveElements{
public static void main(String[] args){
ZipRetrieveElements zr = new ZipRetrieveElements();
}
public ZipRetrieveElements() {
OutputStream out = null;
BufferedReader bf =
new BufferedReader(new InputStreamReader(System.in));
try {
System.out.print("Eneter zip file name to unzip: ");
String sourcefile = bf.readLine();
if(!sourcefile.endsWith(".zip")){
System.out.println("Invalid file name!");
System.exit(0);
}
else if(!new File(sourcefile).exists()){
System.out.println("File not exist!");
System.exit(0);
}
ZipInputStream in =
new ZipInputStream(new FileInputStream(sourcefile));
ZipFile zf = new ZipFile(sourcefile);
int a = 0;
for(Enumeration em = zf.entries(); em.hasMoreElements();){
String targetfile = em.nextElement().toString();
ZipEntry ze = in.getNextEntry();
out = new FileOutputStream(targetfile);
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
a = a + 1;
}
if(a > 0) System.out.println("Files unzipped.");
out.close();
in.close();
} catch (IOException e) {
System.out.println("Error: Operation failed!");
System.exit(0);
}
}
}
|
Download this
example.