Extracting ZIP/JAR/WAR/TAR/RAR file using java
Using ZipEntry and ZipInputstream classes we can extract the zip/jar/war/tar files.
here is the code snippet....
public static void extractZipFiles(String filename) {
try {
// destination folder to extract the contents
String destinationname = "d:\\temp\\testZip\\";
byte[] buf = new byte[1024];
ZipInputStream zipinputstream = null;
ZipEntry zipentry;
zipinputstream = new ZipInputStream(new FileInputStream(filename));
zipentry = zipinputstream.getNextEntry();
while (zipentry != null) {
// for each entry to be extracted
String entryName = zipentry.getName();
int n;
FileOutputStream fileoutputstream;
File newFile = new File(entryName);
String directory = newFile.getParent();
// to creating the parent directories
if (directory == null) {
if (newFile.isDirectory()){
break;
}
} else {
new File(destinationname+directory).mkdirs();
}
if(!zipentry.isDirectory()){
System.out.println("File to be extracted....."+ entryName);
fileoutputstream = new FileOutputStream(destinationname + entryName);
while ((n = zipinputstream.read(buf, 0, 1024)) > -1){
fileoutputstream.write(buf, 0, n);
}
fileoutputstream.close();
}
zipinputstream.closeEntry();
zipentry = zipinputstream.getNextEntry();
}// while
zipinputstream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
...
Using ZipEntry and ZipInputstream classes we can extract the zip/jar/war/tar files.
here is the code snippet....
public static void extractZipFiles(String filename) {
try {
// destination folder to extract the contents
String destinationname = "d:\\temp\\testZip\\";
byte[] buf = new byte[1024];
ZipInputStream zipinputstream = null;
ZipEntry zipentry;
zipinputstream = new ZipInputStream(new FileInputStream(filename));
zipentry = zipinputstream.getNextEntry();
while (zipentry != null) {
// for each entry to be extracted
String entryName = zipentry.getName();
int n;
FileOutputStream fileoutputstream;
File newFile = new File(entryName);
String directory = newFile.getParent();
// to creating the parent directories
if (directory == null) {
if (newFile.isDirectory()){
break;
}
} else {
new File(destinationname+directory).mkdirs();
}
if(!zipentry.isDirectory()){
System.out.println("File to be extracted....."+ entryName);
fileoutputstream = new FileOutputStream(destinationname + entryName);
while ((n = zipinputstream.read(buf, 0, 1024)) > -1){
fileoutputstream.write(buf, 0, n);
}
fileoutputstream.close();
}
zipinputstream.closeEntry();
zipentry = zipinputstream.getNextEntry();
}// while
zipinputstream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
...
Thanks dude. This helps me in very critical time.
ReplyDeleteThis way is only used for extract zip file
ReplyDeleteWhat bout .7z files?
ReplyDeletewhat about 7z and rar file???
ReplyDeletedoes it work for rar?
ReplyDeleteIt seems like its only works for *.zip files
ReplyDeletenot worked for me
ReplyDelete