Maison >Java >JavaBase >Comment implémenter la sérialisation en Java

Comment implémenter la sérialisation en Java

尚
original
2019-12-26 11:51:095368parcourir

Comment implémenter la sérialisation en Java

1. Implémenter la sérialisation :

1) Utilisez l'interface Serialisable pour implémenter la sérialisation

Nous définissons d'abord une classe d'objets Utilisateur

public class User implements Serializable {
    //序列化ID
    private static final long serialVersionUID = 1L;
    private int age;
    private String name;
    //getter和setter方法、
    //toString方法}

Ensuite, implémentez la sérialisation et la désérialisation dans la classe Test.

public class Test {
    public static void main(String[] args) throws Exception, IOException {
        //SerializeUser();
        DeSerializeUser();
    }
    //序列化方法
    private static void SerializeUser() throws FileNotFoundException, IOException {
        User user = new User();
        user.setName("Java的架构师技术栈");
        user.setAge(24);
        //序列化对象到文件中
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("G://Test/template"));
        oos.writeObject(user);
        oos.close();
        System.out.println("序列化对象成功");
    }
    //反序列化方法
    private static void DeSerializeUser() throws FileNotFoundException, IOException{
        File file = new File("G://Test/template");
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file));
        User newUser = (User)ois.readObject();
        System.out.println("反序列化对象成功"+newUser.toString());
    }}

2) Utilisez l'interface externalisable pour implémenter la sérialisation

Tout d'abord, définissez une classe User1

public class User1 implements Externalizable{
    private int age;
    private String name;
    //getter、setter
    //toString方法
    
    public User1() {}
    
    @Override
    public void writeExternal(ObjectOutput out) throws IOException {
    }
    @Override
    public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
    }}

La différence entre les interfaces externalisables et sérialisables :

1) Externalisable hérite de l'interface Serialisable

2) Nous devons réécrire les méthodes writeExternal() et readExternal()

3) La classe qui implémente l'interface Externalisable doit fournir un constructeur public de paramètre Aucun.

2. Fonction :

1) La sérialisation est un mécanisme utilisé pour traiter les flux d'objets. Le soi-disant flux d'objets consiste à diffuser le contenu de l'objet, et l'objet diffusé peut être To. effectuer des opérations de lecture et d'écriture, vous pouvez également transférer des objets diffusés vers et depuis le réseau

2) Afin de résoudre les problèmes qui peuvent survenir lors des opérations de lecture et d'écriture du flux d'objets (si la sérialisation n'est pas effectuée, les données peuvent exister Problème dans le désordre)

3) En plus d'obtenir la persistance des objets, la sérialisation peut également être utilisée pour le clonage profond d'objets

3) Scénarios d'utilisation de la sérialisation

1) Enregistrez définitivement l'objet et enregistrez la séquence d'octets de l'objet dans un fichier local ou une base de données

2) Transmettez et recevez l'objet sous forme de flux d'octets via la sérialisation ; >3) Transférer des objets entre les processus via la sérialisation ;

Pour plus de connaissances sur Java, veuillez faire attention à la colonne

Tutoriel de base Java

.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn