Oi,
Bom, fiz um teste aqui, e funcionou perfeitamente...
// -------------------------------------
import java.io.*;
public class TesteSerializacao implements Serializable {
private int campoA;
private int campoB;
private String str;
public int getCampoA() {
return campoA;
}
public void setCampoA(int campoA) {
this.campoA = campoA;
}
public int getCampoB() {
return campoB;
}
public void setCampoB(int campoB) {
this.campoB = campoB;
}
public java.lang.String getStr() {
return str;
}
public void setStr(java.lang.String str) {
this.str = str;
}
public String toString() {
StringBuffer b = new StringBuffer();
b.append("(");
b.append(campoA);
b.append(",");
b.append(campoB);
b.append(") ");
b.append(str);
return b.toString();
}
public TesteSerializacao(int campoA, int campoB, String str) {
this.campoA = campoA;
this.campoB = campoB;
this.str = str;
}
public static void main(String[] args) throws FileNotFoundException,
IOException, ClassNotFoundException {
// gravando
ObjectOutputStream o = new ObjectOutputStream(new
FileOutputStream("objetos.objects"));
TesteSerializacao um = new TesteSerializacao(1, 2, "Objeto 1");
TesteSerializacao dois = new TesteSerializacao(10, 20, "Objeto 2");
o.writeObject(um);
o.writeObject(dois);
o.flush();
o.close();
// lendo
ObjectInputStream i = new ObjectInputStream (new FileInputStream
("objetos.objects"));
TesteSerializacao a = (TesteSerializacao)i.readObject();
TesteSerializacao b = (TesteSerializacao)i.readObject();
System.out.println(a + "\n" + b);
i.close();
}
}
// FIM ----------------------------------------------------
----- Original Message -----
From: "Eduardo de Britto Castro" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, March 11, 2002 2:09 PM
Subject: Re: [java-list] Serializa��o de dois objetos no mesmo arquivo
Mas � isso mesmo que eu estou tentando fazer: gravar mais de um objeto em um
mesmo arquivo e depois os ler.
----- Original Message -----
From: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Wednesday, March 06, 2002 8:53 AM
Subject: RE: [java-list] Serializa��o de dois objetos no mesmo arquivo
Em uma segunda olhada no c�digo percebi que vc est� passando true como
segundo argumento do constructor FileOutputStream. Isso significa utilizar
modo append. Essa � provavelmente a causa do problema. O arquivo j� devia
existir anteriormente comresquicios de testes anteriores, n�o? Quando voc�
manda abrir o arquivo para leitura, voc� est� lendo do in�cio do arquivo
novamente.
N�o passe este segundo argumento.
Rodrigo
-----Original Message-----
From: Eduardo de Britto Castro [mailto:[EMAIL PROTECTED]]
Sent: domingo, 3 de mar�o de 2002 23:37
To: [EMAIL PROTECTED]
Subject: Re: [java-list] Serializa��o de dois objetos no mesmo arquivo
Eu j� fiz isso, mas mesmo assim o problema acontece. Posso at� fazer
um programa para gravar e outro para ler que d� problema no que l�.
----- Original Message -----
From: Rodrigo B. de Oliveira
To: [EMAIL PROTECTED]
Sent: Saturday, March 02, 2002 3:47 PM
Subject: Re: [java-list] Serializa��o de dois objetos no mesmo
arquivo
flush e close a primeira stream antes de prosseguir...
----- Original Message -----
From: Eduardo de Britto Castro
To: [EMAIL PROTECTED]
Sent: Wednesday, February 27, 2002 2:49 PM
Subject: [java-list] Serializa��o de dois objetos no mesmo arquivo
Porque depois de serializar mais de um objeto no mesmo arquivo
ocorre uma excessao ao tentar recuperar o segundo?
--------------------------------------- GRAVACAO
OK ---------------------------------------
MeuObjeto obj1, obj2;
ObjectOutputStream out = new ObjectOutputStream (new
FileOutputStream ("Serializacao.dat",true));
...
out.writeObject (obj1);
out.writeObject (obj2);
---------------------------------------
LEITURA ---------------------------------------
MeuObjeto o1, o2;
ObjectInputStream in = new ObjectInputStream (new FileInputStream
("Serializacao.dat"));
o1 = (MeuObjeto) in.readObject();
o2 = (MeuObjeto) in.readObject(); // Excessao ocorre aqui.
------------------------------- AQUI ESTA A
EXCESSAO --------------------------------
Exception in thread "main" java.io.StreamCorruptedException
at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1291)
at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:322)
at Serializacao.main(Serializacao.java:25)
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usu�rios Java da Sucesu-SP
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
historico: http://www.mail-archive.com/java-list%40soujava.org.br
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------