Zipping and Unzipping files in java
Posted By Vakeel Malik | 15-Dec-2018
We know that some software like 'WinZip' provides zipping and unzipping of file data. In zipping the file contents, following two things could happen.
1. file contents are compressed and hence file size will be reduced.
2. file formate of data will be changed, making it unreadable formate
While zipping the file contents, zipping algorithm (logic) is used to in such a way that algorithm first find out which bit pattern is most often repeating, this repeated bit pattern replaced with 0, the algorithm searches for next bit pattern which is most often repeated and replaced that second bit pattern with 1, algorithm search for next third most repeated bit pattern and this third repeated bit pattern replaced with 01, and the fourth with 10 and so on. then got the file is called zip file.
to get back from the zip file to the original file, use a following reverse algorithm which substitutes the original bit pattern whenever particular bit pattern is found.
In Java, the classes to convert content to zip and unzip, we can use DeflaterOutputStream and InflaterInputStream,
DelfalterOutputStream used to convert original file contents to zip file contents and InflaterInputStream used convert zip file contents to original file contents.
These file in belongs to java.util.zip.* package in java
Zipping file: -
let us learn how to compressed file content using following stag
1. first of all create a text file with some content and save as file1.txt
2. Create another text file for store zip content as file2.txt
3. Attached FileInputStream with file1 for read data from file1
4. Create an Object of FileOutputStream to write zip file and pass file2 as a parameter
Now, file2 contains compressed data. suppose we want to get the original Uncompressed file from the compressed(zip) file. use these following step
1. Create an object of FileInputStream and passed the parameter as file2 for reading compressed data from file2
2. Create an object of FileOutputStream to write uncompressed data.
3. Create an object of InflaterInputStream convert compressed content to the original content.