Serialización de clases

El propósito de la serialización: para poder guardar el objeto

La esencia de la serialización:

1. Crear un FIleOutputStream

FileOutputStream fileStream = new FileOutputStream("MyGame.ser");//FileOutputStream有写字节的方法,可以写入文件

2. Crear un ObjectOutputStream

ObjectOutputStream os = new ObjectOutputStream(fileStream);//但我们一般不直接写字节,会先用 ObjectOutputStream 来把对象打包,再写入文件 

3. Llame al método writeObject para empaquetar y escribir el archivo

os.writeObject(characterOne);
os.writeObject(characterTwo);
os.writeObject(characterThree);

4. Cierre ObjectOutputStream

os.close();

Condiciones bajo las cuales se puede serializar una clase:

Implemente la interfaz serializable, que también se denomina interfaz de marca de clase de creador o etiqueta, porque esta interfaz no tiene métodos para implementar. Su único propósito es declarar que la clase que implementa esta interfaz puede ser serializada. Esto significa que los objetos de este tipo se pueden almacenar a través de la serialización. Si una clase es serializable, sus subclases también se pueden serializar automáticamente.

¿Qué salvó realmente el objeto al serializar el objeto?

Respuesta: El estado del objeto es el valor de la variable de instancia. Son estos valores los que hacen que diferentes instancias de la misma clase tengan significados diferentes.

Nota: La serialización debe ser todo o nada, es decir, todas las variables de serialización dentro de la clase deben ser serializadas. Si una variable de instancia no puede o no debe ser serializada, márquela como transitoria;

Deserialización: Restaurar archivos a objetos vivos.

1. Crear FileInputStream

FileInputStream fileStream = new FIleInputStream(MyGame.ser);

2. Crear ObjectInputStream

ObjectInputStream os = new ObjectInputStream(fileStream);

3. Lee el objeto

Object one = new os.readObject();
Object two = new os.readObject();
Object three = new os.readObject();

4. Convertir tipos de objetos

GameCharacter elf = (GameCharacter)one;//返回的Object类型,必须转换类型
GameCharacter troll = (GameCharacter)two;
GameCharacter mag = (GameCharacter) three;

5. Cierre ObjectInputStream

os.close();//FileInputStream会跟着关掉

Almacena y restaura el código de personaje del juego

没找见代码,可能删了,抱歉!

27 artículos originales publicados · elogiados 2 · visitas 680

Supongo que te gusta

Origin blog.csdn.net/qq_44273739/article/details/104343131
Recomendado
Clasificación