Reserva de cadeiras num teatro, manipulação de arquivos

Ola, preciso fazer um programa que faça rese rvas de cadeiras em um teatro, utilizando manipulação de arquivos,
estou usando as cadeiras em um vetor(boolean,onde cadeira reservada=true, e cadeira vazia=false), o problema esta na leitura do arquivo, pois ao iniciar o programa, o arquivo nao é lido, e as informações são regravadas…nao sendo verificado entao se determinada cadeira ja esta reservada ou nao…

segue o codigo:


public class Passagens extends JFrame implements ActionListener{
boolean a[][];
String  n[];


.....


public Passagens()
	{

cad1 = new JButton("01");
		cad1.setBounds(80,80,200,40);
		cad1.setForeground(Color.blue);
		cad1.addActionListener(this);
		container.add(cad1);

a=new boolean[5][5];
		for(int i=0;i<a.length;i++)
		{
			for(int j=0;j<a[i].length;j++)

					a[i][j]=false;
		}
n= new String[25];

}
public static void main(String args[])
		{



		try	{
			   Passagens application = new Passagens();
			   application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );


FileInputStream d = new FileInputStream("Teatro.arq");

ObjectInputStream e = new ObjectInputStream(d);

e.readObject();

		   	}


		catch (Exception e){
		System.out.println("Classe não encontrada");
									   }
		}


public void actionPerformed( ActionEvent event ){



if(event.getSource()==cad1)
{

try{
	if (a[0][0]==true)
	{
String nome = n[0];

	JOptionPane.showMessageDialog(null,"Esta cadeira ja esta reservada para :"+nome);

	}

	else
	{
	String snome = JOptionPane.showInputDialog("Digite o nome do cliente");
	a[0][0]=true;
	n[0]=""+snome;
	
JOptionPane.showMessageDialog(null,"Reserva efetuada para : "+snome);
FileOutputStream f = new FileOutputStream("Teatro.arq");
ObjectOutputStream s = new ObjectOutputStream(f);

				s.writeObject(a);
				s.flush();
	}
}

catch(Exception e)
		   {

			   System.out.println("Erro");
		   }

}//fecha evento do botao

.....