Caros, sou novo no fórum, já realizei uma imensa pesquisa dentro do GUJ e no google, olhei a API do java.io.ObjectInputStream e não encontrei algo que possa me auxiliar.
A questão é a seguinte, preciso serializar objetos em um arquivo, para isto utilizei o java.io.ObjectOutputStream. Minha classe ficou assim:
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
/**
*
* @author Administrador
*/
public class gravaObjeto {
FileOutputStream fos;
ObjectOutputStream oos;
Object obj;
public void gravarObjeto(Object objeto){
try{
this.obj = objeto;
// aqui o atributo "true" inica que o arquivo deverá permitir o append de novos objetos
fos = new FileOutputStream("C:\tmpo.txt", true);
oos = new ObjectOutputStream(fos);
oos.writeObject(obj);
oos.flush();
fos.close();
oos.close();
}catch(IOException ioe){
System.out.println(ioe);
}
}
}
O arquivo é gerado sem problemas, porém, não encontrei em nenhuma fonte a qualquer forma (mesmo tosca) de fazer com que o ObjectInputStream faça a leitura de todos os objetos serializados.
Todos os métodos da classe ObjectInputStream não dão suporte à qualquer método boolean que permita verificar se os objetos foram lidos.
Praticamente todas as fontes que consultei apenas tratam da serialização de um único objeto, o problema é que, devido a uma questão da faculdade, preciso serializar mais de um objeto e recuperá-lo, mas não quero fazer isto com um ArrayList, pois a proposta do problema é para que os atributos de cada classe sejam informados e salvos, mesmo com intervalos de tempos, tornando o uso do Arraylist inviável (a não ser que toda vez que eu vá serializar um objeto carregue todo o array e refaça o processo, mas isto é meio ilógico).
Portanto, como ler mais de um objeto serializado em um arquivo?