Comment compresser un objet sérialisé dans un fichier

Comment compresser un objet sérialisé dans un fichier

Dans la dernière section, vous en apprendrez davantage surhow to write or serialized an object into a file. Dans cet exemple, vous pouvez faire plus que simplement le sérialiser, vous pouvez également compresser l'objet sérialisé pour réduire la taille du fichier.

L'idée est très simple, il suffit d'utiliser les «GZIPOutputStream» pour la compression des données.

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

Exemple GZIP

Dans cet exemple, vous allez créer un objet «Adresse», le compresser et l'écrire dans un fichier «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();
       }
   }
}