(Serialização de objeto) serialização e processamento de desserialização

Processamento de serialização e desserialização

Com a classe de suporte de serialização, se você deseja implementar operações de serialização e desserialização, pode usar as duas classes a seguir para concluir:

Nome da classe Serialização: ObjectOutputSteam Desserialização: ObjectIntputStream
Definição de classe
public class ObjectOutputStream 
estende OutputStream 
implementa ObjectOutput , ObjectStreamConstants
public class ObjectInputStream 
estende InputStream 
implementa ObjectInput , ObjectStreamConstants
Método de construção
public ObjectOutputStream ( OutputStream  out) 
                   lança IOException
public ObjectInputStream ( InputStream  in) 
                  lança IOException
Método de operação
public final void writeObject ( Object  obj) 
                       lança IOException
public final  Object  readObject () 
                        lança IOException ,
                                ClassNotFoundException

Exemplo: realizar serialização e desserialização

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

Nome: Zhang San, idade: 18

A serialização e a desserialização em java devem usar o fluxo de operação do objeto fornecido internamente, porque envolve o formato de dados binários, então você não pode personalizar o processamento. Se você deseja obter a serialização de um conjunto de pares, você pode usar a matriz de objeto está completo.

No processo de desenvolvimento de muitos projetos reais, os desenvolvedores são mais ou menos capazes de ver essas duas classes, porque muitos contêineres ajudam os desenvolvedores a implementá-los automaticamente.

Acho que você gosta

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