Serialização

0 views
Skip to first unread message

Marcos

unread,
Apr 5, 2010, 10:43:38 AM4/5/10
to gujsmo
Exemplo de serialização e desserialização de objetos:
A 1º Classe Serializa 3 objetos e a
2ª Classe Desserializa os 3 objetos:
-----------------------------------------------------------------------------------------
package pacote;

import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;

@SuppressWarnings("serial")
public class Serializacao implements Serializable{ // Implementar
Serializable

private int width; // atributos a serem gravados
private int height;

public Serializacao(int width, int height) {
this.width = width;
this.height = height;
}
// métodos getters e setters
public int getWidth() { return width; }
public void setWidth(int width) { this.width = width; }
public int getHeight() { return height; }
public void setHeight(int height) { this.height = height; }

public String toString() {
return "Serializacao [height = " + height + ", width = " + width +
"]";
}
public static void main(String[] args) {
// novas instancias de ObjetoSerializavel com valores definidos
Serializacao ObjetoSerializavel1 = new Serializacao(33, 75);
Serializacao ObjetoSerializavel2 = new Serializacao(45, 82);
Serializacao ObjetoSerializavel3 = new Serializacao(51, 93);

// cria ou sobreescreve um arquivo objetoSerializado.ser
// com uma extensão personalizada
try {
FileOutputStream fos1 = new
FileOutputStream("objetoSerializado1.ser");
FileOutputStream fos2 = new
FileOutputStream("objetoSerializado2.ser");
FileOutputStream fos3 = new
FileOutputStream("objetoSerializado3.ser");

ObjectOutputStream oos1 = new ObjectOutputStream(fos1);
ObjectOutputStream oos2 = new ObjectOutputStream(fos2);
ObjectOutputStream oos3 = new ObjectOutputStream(fos3);

oos1.writeObject(ObjetoSerializavel1);
oos2.writeObject(ObjetoSerializavel2);
oos3.writeObject(ObjetoSerializavel3);

oos1.close();
oos2.close();
oos3.close();
} catch (Exception e) { e.printStackTrace(); }
}
}

-----------------------------------------------------------------------------------------

package pacote;

import java.io.FileInputStream;
import java.io.ObjectInputStream;
import java.io.Serializable;

@SuppressWarnings("serial")
public class Desserializacao implements Serializable {

private void desserializa() {
Serializacao objetoDesserializado1 = null;
Serializacao objetoDesserializado2 = null;
Serializacao objetoDesserializado3 = null;

try {
FileInputStream fis1 = new
FileInputStream("objetoSerializado1.ser");
FileInputStream fis2 = new
FileInputStream("objetoSerializado2.ser");
FileInputStream fis3 = new
FileInputStream("objetoSerializado3.ser");

ObjectInputStream ois1 = new ObjectInputStream(fis1);
ObjectInputStream ois2 = new ObjectInputStream(fis2);
ObjectInputStream ois3 = new ObjectInputStream(fis3);

Object objeto1 = ois1.readObject();
Object objeto2 = ois2.readObject();
Object objeto3 = ois3.readObject();

objetoDesserializado1 = (Serializacao) objeto1;
objetoDesserializado2 = (Serializacao) objeto2;
objetoDesserializado3 = (Serializacao) objeto3;

ois1.close();
ois2.close();
ois3.close();

} catch (Exception e) {
e.printStackTrace();
}
System.out.println(objetoDesserializado1.toString());
System.out.println(objetoDesserializado2.toString());
System.out.println(objetoDesserializado3.toString());
// Objetos recuperdos com os valores "salvos" na Classe Serializacao
}

public static void main(String[] args) {
Desserializacao desserializacao = new Desserializacao();
desserializacao.desserializa();
}

}

-----------------------------------------------------------------------------------------

Reply all
Reply to author
Forward
0 new messages