Main Tutorials

How to compress serialized object into file

In last section, you learn about how to write or serialized an object into a file. In this example , you can do more than just serialized it , you also can compress the serialized object to reduce the file size.

The idea is very simple, just using the “GZIPOutputStream” for the data compression.


FileOutputStream fos = new FileOutputStream("c:\\address.gz");
GZIPOutputStream gz = new GZIPOutputStream(fos);
ObjectOutputStream oos = new ObjectOutputStream(gz);

GZIP Example

In this example, you will create an “Address” object , compress it and write it into a file “c:\\address.gz“.

P.S Address object can refer to this article.


package com.mkyong.io;

import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.zip.GZIPOutputStream;

public class Serializer implements Serializable{

   public static void main (String args[]) {
    
	   Serializer serializer = new Serializer();
	   serializer.serializeAddress("wall street", "united state");
   }

   public void serializeAddress(String street, String country){
	   
	   Address address = new Address();
	   address.setStreet(street);
	   address.setCountry(country);
	   
	   try{
		   
		   FileOutputStream fos = new FileOutputStream("c:\\address.gz");
		   GZIPOutputStream gz = new GZIPOutputStream(fos);

		   ObjectOutputStream oos = new ObjectOutputStream(gz);
		   
		   oos.writeObject(address);
		   oos.close();
		   
		   System.out.println("Done");
		   
	   }catch(Exception ex){
		   ex.printStackTrace();
	   }	 
   }
}

About Author

author image
Founder of Mkyong.com, love Java and open source stuff. Follow him on Twitter. If you like my tutorials, consider make a donation to these charities.

Comments

Subscribe
Notify of
2 Comments
Most Voted
Newest Oldest
Inline Feedbacks
View all comments
satyam
11 years ago

Hi ,
If I want to compress text file using the “GZIPOutputStream” ,
Is it possible ?

waiting for your answer!!!

Artur
13 years ago

Why Serializer class should implement Serializable interface?
I think that Address class should implement it, because instance of this class is serializing…