//In class example

import java.io.*;
import javax.swing.*;

public class ObjectIO
{
	//write objects to a file
	public void writeFile(Object[] ary, String filename)
	{
		ObjectOutputStream out = null;

		//create objectoutputstream
		try
		{
			out = new ObjectOutputStream (new FileOutputStream (filename));
		}
		catch(IOException e)
		{
			JOptionPane.showMessageDialog(null, "Error Opening File " + filename,
								"Error", JOptionPane.ERROR_MESSAGE);
		}

		//write array to file
		try
		{
			out.writeObject(ary);
			out.flush();
		}
		catch (IOException e)
		{
			JOptionPane.showMessageDialog(null, "Error Writing to File " + filename,
							"Error", JOptionPane.ERROR_MESSAGE);
		}

		//close file
		try
		{
			out.close();
		}
		catch (IOException e)
		{
			JOptionPane.showMessageDialog(null, "Error closing file " + filename,
							"Error", JOptionPane.ERROR_MESSAGE);
		}
	}

	//read object array from file
	public Object[] readFile(String filename)
	{
		ObjectInputStream in = null;
		Object[] ary = null;

		try
		{
			in = new ObjectInputStream (new FileInputStream (filename));
		}
		catch (IOException ioe)
		{
			JOptionPane.showMessageDialog (null, "Error opening file " + filename,
							"Error",  JOptionPane.ERROR_MESSAGE);
		}

		//read Object Array
		try
		{
			ary = (Object[])in.readObject();
		}
		catch(ClassNotFoundException cnfe)
		{
			JOptionPane.showMessageDialog(null, "Class not found",
								"Error", JOptionPane.ERROR_MESSAGE);
		}

		catch (IOException ioe)
		{
			JOptionPane.showMessageDialog(null, "Error reading from file " + filename,
								"Error", JOptionPane.ERROR_MESSAGE);
		}

		//close file
		try
		{
			in.close();
		}
		catch (IOException ioe)
		{
			JOptionPane.showMessageDialog(null, "Error closing file " + filename,
								"Error", JOptionPane.ERROR_MESSAGE);
		}
		return ary;
	}
}
