Home » Tip Bank » Java
  • Comment on this Article
Language: Java
Expertise: Intermediate
Nov 4, 2019

WEBINAR:

On-Demand

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


Watch

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
 
Submit a Tip
Browse "Java" Tips
Browse All Tips
html-color-codes.info
eloquentjavascript.net