Serialização de Objetos

8 respostas
d34d_d3v1l

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(); }

8 Respostas

ganondorfan

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

d34d_d3v1l

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

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?

P

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));
d34d_d3v1l

[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

S

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…

d34d_d3v1l

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…

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

obrigado!

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.

d34d_d3v1l

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.

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

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

Abrazz

Criado 19 de janeiro de 2011
Ultima resposta 25 de jan. de 2011
Respostas 8
Participantes 5