The java.util.zip.DeflaterOutputStream class is immediate supper class of java.util.zip.ZipOutputStream class. java.util.zip. ZipOutputStream implements java.util.zip.ZipConstants interface. The class ZipOutStream implements an output stream filter to write files in the zip file format. This class can be used for both compressed and uncompressed files.
The java.io.FilterOutputStream class extends java.io.BufferedOutputStream class and implements a buffered output stream. We can write a byte steam into a file on the system. The java.io.FileInputStream class extends java.io.InputStream class. FileInputStream class is used to obtain input bytes from a file in a file system. The FileInputStream class is used to read stream of row bytes (such as image data), for reading streams of characters by considering FileReader class.
putNextEntry(new ZipEntry(filesToZip)):
This is the method of ZipOutputStream class which is used to enter files one by one to be zipped. This method is used to close previous zip entry if any active and create the next zip entry by passing the instance of the ZipEntry class which holds the file name to be zipped. In this example we are going to zip "profile.txt" into "outFile.zip" .To execute this example you first need to create profile.txt in same directory.
Here is the code of the program :
import java.io.*; import java.util.zip.*; public class ZipFileExample { public static void main(String a[]) { try { ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream("outFile.zip"))); byte[] data = new byte[1000]; BufferedInputStream in = new BufferedInputStream (new FileInputStream("profile.txt")); int count; out.putNextEntry(new ZipEntry("outFile.zip")); while((count = in.read(data,0,1000)) != -1) { out.write(data, 0, count); } in.close(); out.flush(); out.close(); System.out.println("Your file is zipped"); } catch(Exception e) { e.printStackTrace(); } } }
Download this example.
No comments:
Post a Comment