Ricardo,

No primeiro programa que vc. fez, substitua a linha >>FileOutputStream out =
new FileOutputStream(file);>> por >>FileOutputStream out = new
FileOutputStream(file, true)>>

O "true" indica que vc. quer "append" alguma coisa; ao inves de sobrepor o
que ja existe.

Airton


----- Original Message -----
From: Ricardo Neisse <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, November 24, 1999 5:29 PM
Subject: [SouJava-J] Serializacao de objetos


> 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]
>     ---------------------------------------------------------------------
>

    --------------------------- 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]
    ---------------------------------------------------------------------

Responder a