File Input Output Java

/* Copyright (C) 2003 Univ. of Massachusetts Amherst, Computer Science Dept.
   This file is part of "MALLET" (MAchine Learning for LanguagE Toolkit).
   http://www.cs.umass.edu/~mccallum/mallet
   This software is provided under the terms of the Common Public License,
   version 1.0, as published by http://www.opensource.org.  For further
   information, see the file `LICENSE' included with this distribution. */
//package cc.mallet.util;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.zip.GZIPOutputStream;
/**
 * 
 * 
 * @author Charles Sutton
 * @version $Id: ArrayUtils.java,v 1.1 2007/10/22 21:37:40 mccallum Exp $
 */
public class Util {
    /**
     * Reads a serialized object from a file that has been compressed using gzip.
     *  You probably want to use {@link #readObject} instead, because it will automatically guess
     *  from the extension whether the file is compressed, and call this method if necessary.
     * @param f Compressed file to read object from
     * @see #readObject
     */
    public static Object readGzippedObject (File f)
    {
      try {
        ObjectInputStream ois = new ObjectInputStream (new BufferedInputStream (new GZIPInputStream (new FileInputStream(f))));
        Object obj = ois.readObject();
        ois.close ();
        return obj;
      }
      catch (IOException e) {
        throw new RuntimeException (e);
      } catch (ClassNotFoundException e) {
        throw new RuntimeException (e);
      }
    }
}