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

WEBINAR:

On-Demand

Building the Right Environment to Support AI, Machine Learning and Deep Learning


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