Cet article partage la sérialisation et la désérialisation des objets Java pour votre référence. Le contenu spécifique est le suivant
1. Qu'est-ce que la sérialisation
Convertissez un objet en flux d'octets et enregistrez-le, tel que l'enregistrer dans un fichier et la restauration de l'objet plus tard. Ce mécanisme est appelé sérialisation des objets. (Phrase supplémentaire: la sauvegarde des objets vers des dispositifs de stockage permanentes est appelée persistance)
2. Comment implémenter la série <br /> Il est nécessaire d'implémenter l'interface sérialisable. Si un objet Java implémente cette interface, cela signifie que l'objet de cette classe est sérialisable.
3. Notes sur la sérialisation
(1) Lorsqu'un objet est sérialisé, il ne peut enregistrer que des variables membre non statiques de l'objet et ne peut pas enregistrer des méthodes et des variables de membres statiques.
(2) L'objet A fait référence à l'objet B, l'objet A est sérialisé et B est également sérialisé.
(3) Si un objet sérialisable contient une référence à un objet non sérialisé, l'ensemble de l'opération de sérialisation échouera et une conception NotSerializable sera lancée. Par conséquent, l'objet et l'objet de référence doivent implémenter l'interface sérialisable avant que la sérialisation puisse être effectuée.
(4) Si l'utilisation de variables ou de références transitoires transitoires est marquée comme transitoire, l'objet peut toujours être commandé, mais il ne sera pas sérialisé dans le fichier.
4. Code
La classe de classe publique implémente Serializable {Nom de chaîne privée; Âge transitoire privé; Personne publique (nom de chaîne, int age) {super (); this.name = name; this.age = âge; } public String toString () {return this.name + "-" + this.age; }} classe publique SerializableClient {public static void main (String [] args) lève une exception {personne p1 = new personne ("zhangsan", 5); Personne P2 = nouvelle personne ("Lisi", 100); // Serialize fileOutputStream fos = new FileOutputStream ("Person.txt"); ObjectOutputStream oos = new ObjectOutputStream (fos); oos.writeObject (P1); oos.writeObject (p2); System.out.println ("---------"); // désérialize fileInputStream fis = new FileInputStream ("Person.txt"); ObjectInputStream oiS = new ObjectInputStream (FIS); pour (int i = 0; i <2; i ++) {personne tempperson = (personne) ois.readObject (); System.out.println (Tempperson); }}}
Résultat de sortie:
------------
zhangsan-0
lisi-0
5. Sérialisation et désérialisation du contrôle à grains fins
Lorsque nous mettons en œuvre les deux méthodes privées ci-dessus dans la classe de sérialisation ou de désérialisation (la déclaration de méthode doit être complètement cohérente avec ce qui précède), il nous permet de contrôler le processus de sérialisation et de désérialisation d'une manière granulaire plus sous-jacente et plus héritée.
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.