(Serialización de objetos) procesamiento de serialización y deserialización

Procesamiento de serialización y deserialización

Con la clase de soporte de serialización, si desea implementar operaciones de serialización y deserialización, puede usar las siguientes dos clases para completar:

Nombre de la clase Serialización: ObjectOutputSteam Deserialización: ObjectIntputStream
Definición de clase
ObjectOutputStream de clase pública 
extiende OutputStream 
implementa ObjectOutput , ObjectStreamConstants
La clase pública ObjectInputStream 
extiende InputStream 
implementa ObjectInput , ObjectStreamConstants
Método de construcción
public ObjectOutputStream ( OutputStream  out) 
                   lanza IOException
Public ObjectInputStream ( InputStream  in) 
                  lanza IOException
Método de operación
public final void writeObject ( Object  obj) 
                       lanza IOException
Objeto final público   readObject () 
                        lanza IOException ,
                                ClassNotFoundException

Ejemplo: realizar serialización y deserialización

package 序列化;

import java.io.*;

public class 序列化的基本概念{

    private static final File SAVE_FILE = new File("D:\\Test\\person.person");

    public static void main(String[] args) throws Exception{

        //序列化,完成后生成person.person文件
        saveObject(new Person("张三",18));
        //反序列化
        System.out.println(loadObject());

    }

    public static void saveObject(Object obj) throws Exception{

        ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream(SAVE_FILE));
        objectOutputStream.writeObject(obj);  //序列化
        objectOutputStream.close();

    }

    public static Object loadObject() throws Exception{

        ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream(SAVE_FILE));
        Object obj = objectInputStream.readObject(); //反序列化
        objectInputStream.close();
        return obj;
    }
}

class Person implements Serializable{   //Person类可以被序列化

    private String name;
    private int age;

    public Person(String name,int age){
        this.name  = name ;
        this.age = age;
    }

    @Override
    public String toString(){
        return "姓名:"+this.name+"、年龄:"+this.age;
    }
}

Nombre: Zhang San, edad: 18

La serialización y deserialización en Java debe usar el flujo de operaciones de objetos proporcionado internamente, ya que implica el formato de datos binarios, por lo que no puede personalizar el procesamiento. Si desea lograr la serialización de un conjunto de pares, puede usar la matriz de objetos Esta completo.

En el proceso de desarrollo de muchos proyectos reales, los desarrolladores son más o menos capaces de ver estas dos clases, porque muchos contenedores ayudan a los desarrolladores a implementarlos automáticamente.

Supongo que te gusta

Origin blog.csdn.net/weixin_46245201/article/details/112987014
Recomendado
Clasificación