In this post we will see how to decompress files in java using ZIP format.
Java provides a complete package java.util.zip to perform compression/decompression.
Steps to decompress files in ZIP format
1. Create a ZipInputStream using a FileInputStream
1 2 |
FileInputStream fileInputStream = new FileInputStream("C:\\kscodes\\after\\ZippedFileTest.zip"); ZipInputStream zipInputStream = new ZipInputStream(fileInputStream); |
2. Read all the Files that need to be unzipped using ZipEntry
1 2 3 4 5 6 |
ZipEntry zipEntry; while ((zipEntry = zipInputStream.getNextEntry()) != null) { // write data in files } |
3.Write data to each File using FileOutputStream and BufferedOutputStream
1 2 |
FileOutputStream fileOutputStream = new FileOutputStream(outPutDir + zipEntry.getName()); BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream, BUFFER); |
Example
We had alread created a ZIP file in the previous post – Zip Files using Java
Lets use the same ZIP and unZIP it to a new folder.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
package com.kscodes.sampleproject; import java.io.BufferedOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; public class DecompressFileExample { public static void main(String[] args) { String outPutDir = "C:\\kscodes\\unzip\\"; try { FileInputStream fileInputStream = new FileInputStream( "C:\\kscodes\\after\\ZippedFileTest.zip"); ZipInputStream zipInputStream = new ZipInputStream(fileInputStream); ZipEntry zipEntry; while ((zipEntry = zipInputStream.getNextEntry()) != null) { System.out.println("UnZipping File ::" + zipEntry.getName()); int count; int BUFFER = 2048; byte data[] = new byte[BUFFER]; FileOutputStream fileOutputStream = new FileOutputStream( outPutDir + zipEntry.getName()); BufferedOutputStream bufferedOutputStream = new BufferedOutputStream( fileOutputStream, BUFFER); while ((count = zipInputStream.read(data, 0, BUFFER)) != -1) { bufferedOutputStream.write(data, 0, count); } bufferedOutputStream.flush(); bufferedOutputStream.close(); } zipInputStream.close(); System.out.println("UnZipping Completed !!!!"); } catch (Exception e) { e.printStackTrace(); } } } |
Output
1 2 3 4 5 |
UnZipping File ::Java_Tutorials.doc UnZipping File ::Privacy Policy.txt UnZipping File ::Test.txt UnZipping File ::Tips&Tricks.txt UnZipping Completed !!!! |