Estou estudando a serializacao de objetos em Java e retirei o seguinte
fonte do tutorial de Java da sun :
File file = new File("objetos.dat");
if(!file.exists()){
file.createNewFile();
}
FileOutputStream out = new FileOutputStream(file);
ObjectOutputStream s = new ObjectOutputStream(out);
s.writeObject(o);
s.flush();
s.close();
out.close();
este fonte funciona bem, mas os objetos salvos sao sempre sobre-escritos,
o arquivo sempre tem somente um objeto gravado.
Entao decidi substituiar algumas linhas e o codigo ficou assim :
File file = new File("objetos.dat");
if(!file.exists()){
file.createNewFile();
}
* RandomAccessFile randomfile = new RandomAccessFile(file,"rw");
* randomfile.seek(randomfile.length());
* FileOutputStream out = new FileOutputStream(randomfile.getFD());
ObjectOutputStream s = new ObjectOutputStream(out);
s.writeObject(o);
s.writeObject(o);
s.flush();
s.close();
out.close();
agora quando vou salvar os objetos eu utilizei um arquivo de acesso
randomico e sempre posiciono no fim do arquivo e salvo os objetos no
final.
utilizo o seguinto fonte para ler:
try {
FileInputStream in = new FileInputStream("objetos.dat");
ObjectInputStream s = new ObjectInputStream(in);
objeto o;
while(true){
try {
// classe objeto
o = (objeto)s.readObject();
} catch (Exception exc){
System.out.println(exc);
break;
}
// imprime informacoe sobre o obj na tela
o.print();
}
s.close();
in.close();
} catch(Exception ex) {
System.out.println(ex);
}
Mas quando vou ler os objetos so consigo ler o primeiro objeto gravado e
da o seguinte erro :
java.io.EOFException: Expecting code
Alguem sabe o que pode ser isto ou o que estou fazendo de errado ???
+-----------------------------------------------------+
| Ricardo Neisse |
| Ciencia da Computacao - Universidade de Passo Fundo |
| Fone : xxx-54-331-1251 |
| Home Page http://lci.upf.tche.br/~7691 |
+-----------------------------------------------------+
--------------------------- LISTA SOUJAVA ---------------------------
http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
[para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
---------------------------------------------------------------------