Compress files using the Java ZIP API : File Commands « File Input Output « Java






Compress files using the Java ZIP API

import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.GZIPOutputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; publicclass Compress { publicstaticvoid gzipFile(String from, String to) throws IOException { FileInputStream in = new FileInputStream(from); GZIPOutputStream out = new GZIPOutputStream(new FileOutputStream(to)); byte[] buffer = newbyte[4096]; int bytesRead; while ((bytesRead = in.read(buffer)) != -1) out.write(buffer, 0, bytesRead); in.close(); out.close(); } /** Zip the contents of the directory, and save it in the zipfile */publicstaticvoid zipDirectory(String dir, String zipfile) throws IOException, IllegalArgumentException { // Check that the directory is a directory, and get its contents File d = newFile(dir); if (!d.isDirectory()) thrownew IllegalArgumentException("Not a directory: " + dir); String[] entries = d.list(); byte[] buffer = newbyte[4096]; // Create a buffer for copying int bytesRead; ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipfile)); for (int i = 0; i < entries.length; i++) { File f = newFile(d, entries[i]); if (f.isDirectory()) continue;//Ignore directory  FileInputStream in = new FileInputStream(f); // Stream to read file  ZipEntry entry = new ZipEntry(f.getPath()); // Make a ZipEntry  out.putNextEntry(entry); // Store entry while ((bytesRead = in.read(buffer)) != -1) out.write(buffer, 0, bytesRead); in.close(); } out.close(); } publicstaticvoid main(String args[]) throws IOException { String from = "."; File f = newFile(from); boolean directory = f.isDirectory(); // Is it a file or directory?  Compress.zipDirectory(from, from + ".zip"); Compress.gzipFile(from, from + ".gz"); } } 








Related examples in the same category

1.Touch: set File Last Modified Time
2.File Copy in Java with NIO
3.File Copy in Java
4.Counts words in a file, outputs results in sorted form
5.Copying a file using channels and buffers
6.Copy files using Java IO APICopy files using Java IO API
7.Mimic the Unix Grep command
8.Grep tools
9.BGrep: a regular expression search utility, like Unix grep
10.File concatenation
11.Delete file using Java IO API
12.Undent - remove leading spaces
13.TeePrintStream tees all PrintStream operations into a file, rather like the UNIX tee(1) command
14.Delete a file from within Java, with error handling
15.DirTree - directory lister, like UNIX ls or DOS and VMS dirDirTree - directory lister, like UNIX ls or DOS and VMS dir
16.Program to empty a directory
17.Report on a file's status in Java
18.Simple directory lister
19.Readonly Files
20.List root directoryList root directory
21.Rename a file in Java
22.FNFilter - directory lister using FilenameFilter
23.mkdir examples
24.Program to remove files matching a name in a directory
25.Ls directory lister modified to use FilenameFilterLs directory lister modified to use FilenameFilter
26.Move a File
27.Word Count
28.Diff: text file difference utility.Diff: text file difference utility.
29.Count chars in a File
30.Move File
31.Get file date and time
32.Return readable file size with selected value measure
33.Move a file
34.File Compressor
35.Recursive Delete File
36.Read number of lines from a File
37.Copy and overwrite files
close