File
Decompress a zip folder
With this example we are going to demonstrate how to decompress a zip folder in Java. In short, to decompress a zip folder you should:
- Create a FileInputStream by opening a connection to an actual file, the file named by the path name name in the file system.
- Create a new ZipInputStream.
- Iterate over the ZipEntries of the ZipInputStream, using
getNextEntry()method of ZipInputStream. - Create a new FileOutputStream using a path name with each entry name.
- Create a BufferedOutputStream with the FileOutputStream using a byte array of specified length.
- Read from the ZipInputStream, using its
read(byte[] b, int off, int len)API method and write to the BufferedOutputStream withwrite(byte[] b, int off, int len)API method.
Let’s take a look at the code snippet that follows:
package com.javacodegeeks.snippets.core;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
public class DecompressZipFolder {
//The path of the zipped folder e.g. C:/Users/nikos7/Desktop/lib.zip
private static final String zippedFolderPath = "<ZIPPED FOLDER PATH>";
//The path of the output folder e.g. C:/Users/nikos7/Desktop
private static final String outputFolderPath = "<OUTPUT FOLDER PATH>";
public static void main(String[] args) throws Exception {
FileInputStream zippedFolder = new FileInputStream(zippedFolderPath);
ZipInputStream zippedInputStream = new ZipInputStream(new BufferedInputStream(zippedFolder));
ZipEntry entry;
while ((entry = zippedInputStream.getNextEntry()) != null) {
System.out.println("Unzipping: " + entry.getName());
int size;
byte[] buffer = new byte[2048];
FileOutputStream fileOutputStream = new FileOutputStream(outputFolderPath+"/"+entry.getName());
BufferedOutputStream bufferedOutputsStream = new BufferedOutputStream(fileOutputStream, buffer.length);
while ((size = zippedInputStream.read(buffer, 0, buffer.length)) != -1) {
bufferedOutputsStream.write(buffer, 0, size);
}
bufferedOutputsStream.flush();
bufferedOutputsStream.close();
}
zippedInputStream.close();
zippedFolder.close();
}
}
This was an example of how to decompress a zip folder in Java.
