


Comment obtenir la persistance des objets en utilisant la sérialisation et la désérialisation en Java ?
Comment obtenir la persistance des objets en utilisant la sérialisation et la désérialisation en Java ?
Introduction :
Dans le développement Java, la persistance des objets est un moyen important de parvenir à un stockage à long terme des données. La sérialisation et la désérialisation sont l'un des moyens couramment utilisés pour assurer la persistance des objets en Java. Cet article présentera les concepts de sérialisation et de désérialisation et comment utiliser la sérialisation et la désérialisation en Java pour obtenir la persistance des objets.
1. Que sont la sérialisation et la désérialisation ?
La sérialisation est le processus de conversion d'un objet en flux d'octets afin que l'objet puisse être copié et transmis lors d'opérations telles que la transmission réseau ou l'enregistrement sur disque. La désérialisation est le processus de reconversion d'un flux d'octets en objet et de restauration de l'état et des données de l'objet. En Java, la sérialisation et la désérialisation des objets sont réalisées en implémentant l'interface Serialisable.
2. Comment implémenter la sérialisation
Java propose deux méthodes de sérialisation principales, à savoir la sérialisation basée sur le flux d'octets et la sérialisation basée sur le flux de caractères.
1. Sérialisation basée sur un flux d'octets
La sérialisation basée sur un flux d'octets peut être implémentée via les classes ObjectOutputStream et ObjectInputStream. Voici un exemple de code qui montre comment sérialiser et désérialiser des objets à l'aide d'une approche basée sur le flux d'octets.
import java.io.*; public class ByteStreamSerializationDemo { public static void main(String[] args) { // 将对象序列化为字节流 try { // 创建一个待序列化的对象 Person person = new Person("Tom", 30); // 创建一个输出流 FileOutputStream fileOutputStream = new FileOutputStream("person.obj"); ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream); // 将对象写入输出流 objectOutputStream.writeObject(person); // 关闭输出流 objectOutputStream.close(); } catch (IOException e) { e.printStackTrace(); } // 将字节流反序列化为对象 try { // 创建一个输入流 FileInputStream fileInputStream = new FileInputStream("person.obj"); ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream); // 读取对象数据 Person person = (Person) objectInputStream.readObject(); // 打印对象数据 System.out.println(person.getName()); // 输出:Tom System.out.println(person.getAge()); // 输出:30 // 关闭输入流 objectInputStream.close(); } catch (IOException | ClassNotFoundException e) { e.printStackTrace(); } } } class Person implements Serializable { private String name; private int age; // 构造方法、getter和setter省略 public Person(String name, int age) { this.name = name; this.age = age; } }
Dans le code ci-dessus, nous créons d'abord un objet Person à sérialiser, puis sérialisons l'objet dans un flux d'octets via les classes FileOutputStream et ObjectOutputStream et l'écrivons dans le fichier. Ensuite, nous désérialisons le flux d'octets du fichier en un objet via les classes FileInputStream et ObjectInputStream, et enfin imprimons les valeurs d'attribut de l'objet.
2. Sérialisation basée sur un flux de caractères
La sérialisation basée sur un flux de caractères peut être implémentée via les classes ObjectWriter et ObjectReader.
import java.io.*; public class CharacterStreamSerializationDemo { public static void main(String[] args) { // 将对象序列化为字符流 try { // 创建一个待序列化的对象 Person person = new Person("Tom", 30); // 创建一个Writer FileWriter fileWriter = new FileWriter("person.txt"); BufferedWriter bufferedWriter = new BufferedWriter(fileWriter); ObjectWriter objectWriter = new ObjectWriter(bufferedWriter); // 将对象写入字符流 objectWriter.writeObject(person); // 关闭字符流 objectWriter.close(); } catch (IOException e) { e.printStackTrace(); } // 将字符流反序列化为对象 try { // 创建一个Reader FileReader fileReader = new FileReader("person.txt"); BufferedReader bufferedReader = new BufferedReader(fileReader); ObjectReader objectReader = new ObjectReader(bufferedReader); // 读取对象数据 Person person = (Person) objectReader.readObject(); // 打印对象数据 System.out.println(person.getName()); // 输出:Tom System.out.println(person.getAge()); // 输出:30 // 关闭字符流 objectReader.close(); } catch (IOException | ClassNotFoundException e) { e.printStackTrace(); } } } class Person implements Serializable { private String name; private int age; // 构造方法、getter和setter省略 public Person(String name, int age) { this.name = name; this.age = age; } }
Dans le code ci-dessus, nous sérialisons l'objet dans un flux de caractères via les classes FileWriter, BufferedWriter et ObjectWriter et l'écrivons dans le fichier. Ensuite, le flux de caractères dans le fichier est désérialisé en un objet via les classes FileReader, BufferedReader et ObjectReader, et enfin les valeurs d'attribut de l'objet peuvent être imprimées.
3. Remarques
Lorsque vous utilisez la sérialisation et la désérialisation en Java pour obtenir la persistance d'un objet, vous devez faire attention aux points suivants :
1. La classe de l'objet doit implémenter l'interface Serialisable, sinon la sérialisation et la désérialisation ne peuvent pas être effectuées. . sérialisation.
2. Tous les objets référencés dans la classe sérialisée doivent également être sérialisables.
3. Les champs des classes sérialisées et désérialisées peuvent être de n'importe quel type, y compris des classes personnalisées, des types de données de base, des types de collection, etc.
4. Les champs des classes sérialisées et désérialisées peuvent être modifiés de manière transitoire et ils ne seront pas conservés.
Conclusion :
Grâce à l'introduction de cet article, nous avons appris ce que sont la sérialisation et la désérialisation et démontré, à travers des exemples de code, comment utiliser la sérialisation et la désérialisation en Java pour obtenir la persistance des objets. Dans le développement réel, le stockage et la transmission à long terme des objets peuvent être obtenus en sélectionnant une méthode de sérialisation appropriée en fonction des besoins et en suivant les spécifications et précautions de sérialisation.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser Java pour développer une application de données de localisation géographique basée sur Cassandra. Les applications de données de géolocalisation sont largement utilisées dans la société moderne, telles que la navigation cartographique, le partage de localisation, les recommandations de localisation, etc. Cassandra est une base de données NoSQL distribuée et hautement évolutive, capable de gérer d'énormes quantités de données et particulièrement adaptée au stockage et à l'interrogation de données de localisation géographique. Cet article explique comment utiliser Java pour développer une application de données de localisation géographique basée sur Cassandra et fournit des exemples de code spécifiques. 1. Environnement

La classe LinkedList en Java est une classe qui implémente une structure de données de liste chaînée. Elle fournit de nombreuses méthodes utiles pour gérer les listes chaînées. Parmi eux, la méthode removeFirst() peut être utilisée pour supprimer des éléments de l'en-tête de la liste chaînée. Ce qui suit explique comment utiliser la méthode LinkedList.removeFirst() et donne des exemples de code spécifiques. Avant d'utiliser la méthode LinkedList.removeFirst(), nous devons d'abord créer une LinkedList

Étapes détaillées pour installer Kafka dans un environnement Linux 1. Prérequis Système d'exploitation : Linux (Ubuntu ou CentOS recommandé) Java : JDK8 ou supérieur ZooKeeper : version 3.4 ou supérieure Kafka : la dernière version stable 2. Installez Javasudoapt-getupdatesudoapt-getinstalldefault-jdk3. Installer ZooKeeperwg

Implémentation de compteurs distribués à l'aide de Redis et Java : Comment obtenir une concurrence élevée Introduction : Dans le développement d'applications Internet modernes, la concurrence élevée est un défi courant. Lorsque plusieurs utilisateurs accèdent à une application en même temps, celle-ci doit être capable de traiter et de suivre correctement la demande de chaque utilisateur afin d'éviter toute perte de données ou toute confusion. Dans cet article, nous verrons comment implémenter un compteur distribué à l'aide de Redis et Java pour obtenir un suivi et une gestion des données à haute concurrence. 1. Introduction à Redis Redis est une base open source

Présentation de l'utilisation des opérations de script Linux pour implémenter la connexion à distance en Java : La connexion à distance est un moyen d'utiliser un ordinateur pour se connecter à d'autres ordinateurs dans un environnement réseau afin d'effectuer des opérations. Dans les systèmes Linux, nous utilisons généralement le protocole SSH pour la connexion à distance. Cet article explique comment implémenter des opérations de connexion à distance en appelant des scripts Linux en Java et donne des exemples de code spécifiques. Étape 1 : Écrire le code du script Linux Tout d'abord, nous devons écrire un script Linux pour passer

Utilisation de Dropbox pour la gestion du stockage dans le développement d'API Java Avec l'application généralisée du cloud computing, de plus en plus d'applications doivent stocker des données dans le cloud et pouvoir facilement lire, écrire et gérer ces données. En tant que l'un des services de stockage cloud les plus populaires, Dropbox fournit l'API la plus riche et la plus flexible, permettant aux développeurs d'intégrer facilement les fonctions de gestion du stockage de Dropbox dans leurs applications. Cet article explique comment utiliser Dr dans le développement JavaAPI.

Comment obtenir la persistance des objets en utilisant la sérialisation et la désérialisation en Java ? Introduction : Dans le développement Java, la persistance des objets est un moyen important de parvenir à un stockage à long terme des données. La sérialisation et la désérialisation sont l'un des moyens couramment utilisés pour assurer la persistance des objets en Java. Cet article présentera les concepts de sérialisation et de désérialisation et comment utiliser la sérialisation et la désérialisation en Java pour obtenir la persistance des objets. 1. Que sont la sérialisation et la désérialisation ? La sérialisation est le processus de conversion d'un objet en flux d'octets afin que l'objet puisse être transmis ou enregistré sur le réseau.

En tant que langage de programmation de haut niveau, Java est largement utilisé dans le développement au niveau de l'entreprise et dans le développement d'applications mobiles. En JAVA, le traitement des données est une tâche très importante. Dans de nombreux cas, les données doivent être formatées pour garantir l'exactitude et l'efficacité du programme. Cependant, au cours de ce processus, vous pouvez rencontrer des erreurs de format de données, et ces erreurs peuvent empêcher le programme de fonctionner correctement. En JAVA, java.text.ParseException est une erreur de formatage courante et un
