dcsimg
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: Java
Expertise: Intermediate
Nov 4, 2019

Performing File Compression in Java

Often, file sizes are too big to back them up or share them with someone. You can create a compressed version that will save you disk space, transfer time, etc.

Java provides you with a zip package that can be handy here:

import java.util.zip.GZIPOutputStream;
import java.io.*;

public class CreateGZIP
{
   public static void main(String args[])   {
      CreateGZIP createGZIP = new CreateGZIP();
      createGZIP.proceed();
   }
   
   private void proceed(){
      String fileToBeCompressed = "/home/mypc/CreateGZIP.java";
      String compressedFileName = "/home/mypc/CompressedFile.gz";
      byte[] buffer = new byte[1024];
        int bufferLength;
         
      try{
         //Creating the needed streams for the input and output
         FileInputStream fileInputStream = new FileInputStream(fileToBeCompressed);
            FileOutputStream fileOutputStream = new FileOutputStream(compressedFileName);
            GZIPOutputStream gZIPOutputStream = new GZIPOutputStream(fileOutputStream);

            while((bufferLength = fileInputStream.read(buffer)) != -1){
                gZIPOutputStream.write(buffer, 0, bufferLength);
            }
            
         //Closing all the streams used
         fileInputStream.close();
         //fileOutputStream.close();
         gZIPOutputStream.finish();
            gZIPOutputStream.close();
         System.out.println("File " + fileToBeCompressed + " is compressed as " + compressedFileName);
      }
      catch(IOException ioe){
         System.out.println("IOException: " + ioe);
      }
   }
}

/*

Expected output:

[root@mypc]# java CreateGZIP
File /home/mypc/CreateGZIP.java is compressed as /home/mypc/CompressedFile.gz

*/
M S Sridhar
 
Thanks for your registration, follow us on our social networks to keep up-to-date