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();
}
}
}
Hi ,
If I want to compress text file using the “GZIPOutputStream” ,
Is it possible ?
waiting for your answer!!!
Why Serializer class should implement Serializable interface?
I think that Address class should implement it, because instance of this class is serializing…