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.
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 + '\'' + '}'; } }
Serializer.java
package com.favtuts.io.howto.compress; import java.io.FileOutputStream; import java.io.ObjectOutputStream; import java.io.Serializable; import java.util.zip.GZIPOutputStream; import com.favtuts.io.object.Address; 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("/home/tvt/workspace/favtuts/address.gz"); GZIPOutputStream gz = new GZIPOutputStream(fos); ObjectOutputStream oos = new ObjectOutputStream(gz); oos.writeObject(address); oos.close(); System.out.println("Done"); } catch (Exception e) { e.printStackTrace(); } } }
Download Source Code
$ git clone https://github.com/favtuts/java-core-tutorials-examples
$ cd java-io/howto/compress