Problemas com serialização, aparece esse Erro: java.io.EOFException

Fala Galera… Um grande abraço a todos, e parabéns para todos que tem a boa vontade de ajudar ao iniciantes em JAVA.

O problema é o seguinte, estou fazendo exercícios de serialização, para fixação. E me deparei com o problema;
Eu fiz um exemplo que encontrei no livro, que é o seguinte: Uma Classe Player (Com 3 atributos: String classe, int lvl, e String []armas), Uma classe para executar, e uma outra para Ler.

Eu fiz esse exercício 2 vezes: A primeira uma Classe Player, uma Classe Executa Player (que tinha a lógica de gravação), e uma Classe para Ler o arquivo gravado…
Desse jeito funcionou.

O segundo exercício, eu fiz com uma Classe a mais: Uma Classe Gravação (aonde eu coloquei a lógica de gravação, e tirei do Executa Player) , e continue com uma nova Classe Executa Player e uma Classe Leia Player…

Só que esse fica me dando esse Erro: java.io.EOFException.
[color=red]Exception in thread “main”[/color] [color=darkblue]java.io.EOFException[/color]
[color=red]at java.io.ObjectInputStream$BlockDataInputStream.peekByte(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at serializacao.TestaPlayerLer.main([/color]TestaPlayerLer.java:16[color=red])[/color]

A baixo segue as 4 Classes, se for besteira me desculpem, mas desde já agradeço.

[code]package serializacao;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.Serializable;

public class Gravacao implements Serializable {

public Gravacao(Object o) throws IOException{
	
	FileOutputStream fo = new FileOutputStream("exemplo.dat");
	
	ObjectOutputStream os = new ObjectOutputStream(fo);
	
	os.writeObject(o);
	os.close();
	
	
}

}[/code]

[code]
package serializacao;

import java.io.Serializable;

public class Player implements Serializable{

private String classe;
private int lvl;
private String [] armas= new String[10];

public Player(String c, int lvl, String[] a){
	classe = c;
	this.lvl = lvl;
	armas = a;
}
	
public String informacao(){
	String info =("Classe: "+ classe+", Level: "+lvl+", Armas: ");
	String teste= "";
	for (int i=0; i<armas.length; i++){
		teste += armas[i]+" ";
	}
	return (info + teste);

}

}[/code]

[code]
package serializacao;

import java.io.IOException;
import java.io.Serializable;

import javax.swing.JOptionPane;

public class TestarPlayer {

public static void main(String[] args) {
	
	Player um = new Player("Mago", 5, new String[]{"Magia", "Cajado", "Poções"});
	Player dois = new Player("Guerreiro", 4, new String[]{"Espada", "Machado"});
	Player tres = new Player("Elfo", 6, new String[]{"Arco e Flecha", "Espada", "Magia"});
	
	System.out.println(um.informacao());
	System.out.println(dois.informacao());
	System.out.println(tres.informacao());
	
	try {
		// Eu tinha feito dessa maneira: new Gravacao(um); + achei que fosse isso!!!
		Gravacao gUm = new Gravacao(um);
		Gravacao gdois = new Gravacao(dois);
		Gravacao gtres = new Gravacao(tres);
		JOptionPane.showMessageDialog(null, "Obejeto Gravado!!!", "Informativo...", 1);
		System.out.println("Objeto Gravado!!!");
	} catch (IOException e) {
		e.printStackTrace();
	}
	

}

}[/code]

[code]
package serializacao;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;

public class TestaPlayerLer {

public static void main(String[] args) throws IOException, ClassNotFoundException{

	FileInputStream fi = new FileInputStream("exemplo.dat");
	ObjectInputStream oi = new ObjectInputStream(fi);
	
	//*************** Lendo o objeto... ***************
	Object um = oi.readObject();
	Object dois = oi.readObject();
	Object tres = oi.readObject();

	//************** Fechando a Conexão ***************
	oi.close();
	System.out.println("Objeto Recuparado");
	
	//************** Convertendo os Objetos ***********
	Player one = (Player) um;
	Player two = (Player) dois;
	Player three = (Player) tres;

	//********* Informações dos Objetos ***************
	System.out.println(one.informacao());
	two.informacao();
	three.informacao();
}

}[/code]

Coloque o código entre as tags code. Ele arruma sozinho seu código.

Tem esta opção no menu acima de onde vc escreve a mensagem.