Serialização de Objetos

Podem encontrar um artigo sobre isto aqui:

http://wmagician.wordpress.com/2008/02/14/serializacao-de-objectos-em-java/

O problema é que quando eu crio um novo arquivo para guardar os dados, ele ignora o arquivo existente e sobreescreve-o… Preciso fazer com que ele não sobre sobre-escreva o arquivo existente… Se ele ja existir, adicione no arquivo… se nao, crie o novo!

Segue o código:

try { out = new ObjectOutputStream(new FileOutputStream(System.getProperty("user.dir") + File.separator + "project1.bin")); out.writeObject(d); out.writeObject(d2); out.flush(); out.close(); } catch (Exception e) { e.printStackTrace(); }

Dificil de entender o que você quer com esse trechinho de codigo que você postou.

[quote=ganondorfan]Dificil de entender o que você quer com esse trechinho de codigo que você postou.

[/quote]

Obrigado pela resposta…

Esse trechinho é a parte do código onde eu gravo o objeto no arquivo… Porém ele esta reescrevendo o arquivo, ao invés de adicionar os objetos criados ao arquivo ja existente… entendeu?

Cara,

Um dos construtores do FileOutputStream permite especificar se você deseja criar o stream em modo “append”. Basta você alterar o seu código para o seguinte:

out = new ObjectOutputStream(new FileOutputStream(System.getProperty("user.dir") + File.separator + "project1.bin", true)); 

[quote=pango]Cara,

Um dos construtores do FileOutputStream permite especificar se você deseja criar o stream em modo “append”. Basta você alterar o seu código para o seguinte:

out = new ObjectOutputStream(new FileOutputStream(System.getProperty("user.dir") + File.separator + "project1.bin", true)); 

Obrigado, eu já havia tentado isso… Continuou da mesma forma!
Sobre-escrevendo!

abraços

e ai…

também já precisei anexar um conteúdo em um conteúdo já serializado e não consegui…

procurei em foruns, sites internacionais… e também não achei solução…

parece que não é possível fazer sem sobresercrever…

[quote=suspiro10]e ai…

também já precisei anexar um conteúdo em um conteúdo já serializado e não consegui…

procurei em foruns, sites internacionais… e também não achei solução…

parece que não é possível fazer sem sobresercrever…[/quote]

entao a serialização acaba sendo inútil para mim…

obrigado!

Isto que vc quer fazer não faz muito sentido.

Por que a serialização acaba por ser a tradução de um trecho da memória (que em Java é a instância de uma classe) para IO.

Como seria possível dizer que apenas o valor de uma variável de uma instância mudou e só deve gravar o valor desta variavel alterada em disco e o resto não?

Ainda mais se for instancias diferentes, não ha forma de saber, pois os endereços na memória muda, e por ai fora.

Bem não sei se deu para entender tb n é fácil explicar, não me ocorre nenhuma maneira clara de explicar isto. Mas resumindo não dá mesmo.

E outra serialização é um processo lento e pesado.

Provavelmente para o que vc deve querer fazer é melhor uma outra abordagem.

[quote=eduveks]Isto que vc quer fazer não faz muito sentido.

Por que a serialização acaba por ser a tradução de um trecho da memória (que em Java é a instância de uma classe) para IO.

Como seria possível dizer que apenas o valor de uma variável de uma instância mudou e só deve gravar o valor desta variavel alterada em disco e o resto não?

Ainda mais se for instancias diferentes, não ha forma de saber, pois os endereços na memória muda, e por ai fora.

Bem não sei se deu para entender tb n é fácil explicar, não me ocorre nenhuma maneira clara de explicar isto. Mas resumindo não dá mesmo.

E outra serialização é um processo lento e pesado.

Provavelmente para o que vc deve querer fazer é melhor uma outra abordagem.[/quote]

você explicou como um professor, e eu entendi perfeitamente :wink:

Realmente o mais apropriado será procurar outra abordagem. Obrigado pela resposta.

Abrazz