In last section, you learn about how to compress a serialized object into a file, now you learn how to decompress it from a Gzip file.

FileInputStream fin = new FileInputStream("c:\\address.gz");
GZIPInputStream gis = new GZIPInputStream(fin);
ObjectInputStream ois = new ObjectInputStream(gis);
address = (Address) ois.readObject();

GZIP example

In this example, you will decompress a compressed file “address.gz“, and print it out the value.

Address.java

package com.favtuts.io.object;

import java.io.Serializable;

public class Address implements Serializable {

    //private static final long serialVersionUID = 1L;
    private static final long serialVersionUID = 99L;

    String street;
    String country;

    public Address() {        
    }

    public Address(String street, String country) {
        this.street = street;
        this.country = country;
    }

    public String getStreet() {
        return street;
    }

    public void setStreet(String street) {
        this.street = street;
    }

    public String getCountry() {
        return country;
    }

    public void setCountry(String country) {
        this.country = country;
    }

    @Override
    public String toString() {
        return "Address{" +
                "street='" + street + '\'' +
                ", country='" + country + '\'' +
                '}';
    }
}

Deserializer.java

package com.favtuts.io.howto.compress;

import java.io.FileInputStream;
import java.io.ObjectInputStream;
import java.io.Serializable;
import java.util.zip.GZIPInputStream;

import com.favtuts.io.object.Address;

public class Deserializer implements Serializable {

    public static void main(String[] args) {
        
       Deserializer deserializer = new Deserializer();
	   Address address = deserializer.deserialzeAddress();
	   System.out.println(address);

    }

    public Address deserialzeAddress(){
	   
        Address address;
      
        try{
             
            FileInputStream fin = new FileInputStream("/home/tvt/workspace/favtuts/address.gz");
            GZIPInputStream gis = new GZIPInputStream(fin);
            ObjectInputStream ois = new ObjectInputStream(gis);
            address = (Address) ois.readObject();
            ois.close();
           
            return address;
            
        }catch(Exception ex){
            ex.printStackTrace();
            return null;
        } 
    } 
    
}

Output

Address{street='Wall street', country='United State'}

Download Source Code

$ git clone https://github.com/favtuts/java-core-tutorials-examples

$ cd java-io/howto/compress

Leave a Reply

Your email address will not be published. Required fields are marked *