Как сжать сериализованный объект в файл

Как сжать сериализованный объект в файл

В последнем разделе вы узнаете оhow to write or serialized an object into a file. В этом примере вы можете сделать больше, чем просто сериализовать его, вы также можете сжать сериализованный объект, чтобы уменьшить размер файла.

Идея очень проста, просто использовать «GZIPOutputStream» для сжатия данных.

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

Пример GZIP

В этом примере вы создадите объект «Адрес», сожмете его и запишете в файл «c:\address.gz».

P.S Address object can refer to this article.

package com.example.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();
       }
   }
}