package futils;

import java.io.*;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;

public class SerializeTest {
  public static Object readObject()
      throws
      IOException,
      FileNotFoundException,
      ClassNotFoundException {
    FileInputStream fis
        = new FileInputStream(
            Futil.getReadFile("select an object"));
    GZIPInputStream gis
        = new GZIPInputStream(fis);
    ObjectInputStream ois
        = new ObjectInputStream(gis);
    return ois.readObject();

  }

  public static void saveObject(Object o)
      throws IOException {
    FileOutputStream fos
        = new FileOutputStream(
            Futil.getWriteFile(
                "select an output file for the object"));
    GZIPOutputStream gos
        = new GZIPOutputStream(fos);
    ObjectOutputStream oos
        = new ObjectOutputStream(gos);
    oos.writeObject(o);
    oos.close();
    gos.finish();
  }

  public static void main(String args[]) {
    try {
      Customer c1 =
          new Customer();
      c1.setName("J. Shmoe");
      System.out.println("Object out=");
      c1.print();
      saveObject(c1);
      System.out.println("Object in=");
      Object o =
          readObject();
      if (o instanceof Customer) {
        Customer c =
            (Customer) o;
        c.print();
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}