直列化オブジェクトをファイルに圧縮する方法

シリアル化されたオブジェクトをファイルに圧縮する方法

最後のセクションでは、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の例

この例では、「Address」オブジェクトを作成し、それを圧縮して、ファイル「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();
       }
   }
}