Olá a Todos do GUJ. Eh um prazer fazer parte da comunidade, com certeza a melhor que ta tendo. E como todo bom iniciante, hehehehe, venho aki postar uma duvida que ta me pegando…
Eh o seguinte, eu tenho um método que grava em arquivo todos os meus objetos, que por sua vez estavam em um ArrayList, ate ai tudo bem. Mais quando eu chamo o método para ler esses objetos do arquivo, consigo ler apenas os ultimos objetos salvos, porque eu passo o ArrayList como argumento para o metodo. Gostaria de saber como leio todos os objetos salvos no arquivo, uma vez que os mesmo estao serializados e sendo assim não posso lê-los como texto simples, muito obrigado, boa tarde a todos.
E ai dooart baum dmais?? Eh o seguinte, eu to usando da maneira mais didatica que eu consegui aprender, eu tenho uma classe que implementa Serializable, da qual todas as minhas outras classes herdam, e então eu salvo meus objetos com o método writeObjetc() da classe ObjectOutputStream…
Eh isso ai, vlw pelo interesse em ajudar, abração!!
public class ClassA
{
private String a , b;
// getters , setterrs
}
//aqui cria-se o fluxo de objeto
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("meu arquivo"));
Classe A a = new ClasseA("A","B");
oos.writeObject(a);
oos.close();
//agora vamos recuperar os objetos serializados
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("meu arquivo"));
// meu arquivo tem objetos serializados da ClasseA
ClasseA a = (ClasseA)ois.readObject();
System.out.println(a.toString());
Se você grave um ArrayList contendo objetos serializaveis, você deveria conseguir ler um ArrayList contendo “os mesmos objetos” (objetos iguais).
[MODO Propaganda]
A nova versão do reJ terá um recurso para abrir e visualizar o conteúdo de arquivos de objetos serializados. Espero que isso ajude na hora de debugar esse tipo de coisa e também ajudar entender melhor o mecanismo de serialização.
A funcionalidade já está pronta e disponível no CVS do projeto, mas infelizmente ainda não tive tempo para disponibilizar um novo release com essa (e outras novas) funcionalidades.
[/MODO Propaganda]