Bom, eu estava fazendo uma revisão e me deparei como uma questão a respeito de Serialização, pesquisando formas de ler os objetos em um arquivo fiz isso em um while, e capturo uma exception, Teria outra forma mais elegante de ler os objetos em um arquivo e detectar o final do arquivo? segue abaixo meu codigo de exemplo para ilustrar:
import java.io.EOFException;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
public class Pessoa implements Serializable {
/**
*
*/
private static final long serialVersionUID = 6918211458968938345L;
Pessoa(String nome) {
this.nome = nome;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
private String nome;
public static void main(String[] args) throws IOException,
ClassNotFoundException {
FileOutputStream f = new FileOutputStream("pessoas.ser");
ObjectOutputStream oo = new ObjectOutputStream(f);
oo.writeObject(new Pessoa("Zé das Medalhas"));
oo.writeObject(new Pessoa("Viúva Porcina"));
FileInputStream fi = new FileInputStream("pessoas.ser");
ObjectInputStream oi = new ObjectInputStream(fi);
while (true) {
try {
Pessoa p = (Pessoa) oi.readObject();
System.out.println(p.nome);
} catch (EOFException e) {
System.out.println("fim arquivo");
break;
}
}
}
}
Agradeço a ajuda.