Problemas com a escrita de ficheiros

Olá pessoal :smiley:

Quero guardar um objecto num ficheiro .dat.

Contudo, está me aparecendo o seguinte erro:

"java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2281)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2750)
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:780)
at java.io.ObjectInputStream.(ObjectInputStream.java:280)
at accoes.registarConsulta(accoes.java:180)
at accoes.novoRegisto(accoes.java:61)
at accoes.ecraPrincipal(accoes.java:37)
at hl7.main(hl7.java:32)
"
O metodo que guarda o objecto é o seguinte:

void registarConsulta() 
{
		
			
                System.out.print("\n Quais as contas: ");
	System.out.print("\n");
	System.out.print("\n");
		
	MSH M= new MSH();

							
	try {
			FileInputStream fis = new FileInputStream("ficheiro.dat");
			ObjectInputStream ois = new ObjectInputStream(fis);
			ArrayList contas = (ArrayList) ois.readObject();	
			contas.add(M);
			FileOutputStream fos =new FileOutputStream("ficheiro.dat");
			ObjectOutputStream oos = new ObjectOutputStream(fos);
			oos.writeObject(contas);
			oos.close();				
		}
				
	catch (Exception e) {
			e.printStackTrace();  
		}
		
		geral.limparEcra();
		
	}
}

O que estará errado?

Obrigado pela sua ajuda :smiley: