Comment sérialiser un objet en Java : 8 étapes (avec images)

Table des matières:

Comment sérialiser un objet en Java : 8 étapes (avec images)
Comment sérialiser un objet en Java : 8 étapes (avec images)

Vidéo: Comment sérialiser un objet en Java : 8 étapes (avec images)

Vidéo: Comment sérialiser un objet en Java : 8 étapes (avec images)
Vidéo: 360 Live: 9 - Dessins dans Fusion 360 (français) 2024, Peut
Anonim

Lorsque vous sérialisez un objet en Java, vous convertissez les données en flux d'octets qui sont ensuite reconvertis en copie des données d'origine. Si cela vous semble déroutant, pensez à la sérialisation dans les termes suivants. Vous travaillez sur un document, puis enregistrez-le sur votre disque dur. Vous êtes, pour ainsi dire, en train de sérialiser les données afin de pouvoir récupérer cette copie plus tard. La sérialisation rend le transfert de données sur les réseaux beaucoup plus facile et plus efficace.

Il est important que vous compreniez les bases de Java avant de sérialiser un objet. Si vous avez utilisé des langages de programmation tels que Pascal et des versions antérieures de C, vous saurez que sans sérialisation d'objets, un programmeur doit créer un fichier texte d'E/S séparé pour stocker et charger les données. La sérialisation d'objets en Java contourne la création de ce fichier texte pour stocker des données, ce qui permet d'économiser du temps et des coûts de programmation. L'article suivant contient les étapes pour sérialiser un objet en Java. L'exemple de code dans cet article est utilisé avec l'aimable autorisation de The Java Developers Almanac 1.4.

Pas

Sérialiser un objet en Java Étape 1
Sérialiser un objet en Java Étape 1

Étape 1. Ouvrez l'objet de codage Java qui nécessite une sérialisation ou créez-en un à partir de zéro

Sérialiser un objet dans Java Étape 2
Sérialiser un objet dans Java Étape 2

Étape 2. Sélectionnez l'objet en Java que vous souhaitez sérialiser

Dans cet exemple, nous appellerons cet objet "MyObject".

Sérialiser un objet en Java Étape 3
Sérialiser un objet en Java Étape 3

Étape 3. Activez la sérialisation des objets dans Java en créant la classe MyObject pour implémenter l'interface java.io. Serialize

Ajoutez simplement la ligne de code suivante au début du code, en remplaçant la "classe publique MyObject" line.public class MyObject implémente java.io. Serializable

Sérialiser un objet en Java Étape 4
Sérialiser un objet en Java Étape 4

Étape 4. Maintenant, votre objet est sérialisable, ce qui signifie qu'il peut être écrit par un flux de sortie, comme ceci:

  • Les lignes de code suivantes illustrent comment écrire MyObject (ou tout objet sérialisable) dans un fichier ou un disque.

    essayer{

    // Sérialiser l'objet de données dans un fichier

    ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("MyObject.ser"));

    out.writeObject(objet);

    out.close();

    // Sérialiser l'objet de données dans un tableau d'octets

    ByteArrayOutputStream bos = new ByteArrayOutputStream();

    out = new ObjectOutputStream(bos);

    out.writeObject(objet);

    out.close();

    // Récupère les octets de l'objet sérialisé

    byte buf = bos.toByteArray();

    } catch (IOException e) {

    }

Sérialiser un objet en Java Étape 5
Sérialiser un objet en Java Étape 5

Étape 5. Il peut être lu comme ceci:

try{ FileInputStream door = new FileInputStream("name_of_file.sav"); Lecteur ObjectInputStream = new ObjectInputStream(porte); MonObjet x = new MonObjet(); x = (MyObject) reader.nextObject();}catch (IOException e){ e.printStackTrace();}

Sérialiser un objet en Java Étape 6
Sérialiser un objet en Java Étape 6
Sérialiser un objet dans Java Étape 7
Sérialiser un objet dans Java Étape 7

Étape 6. Exécutez le code objet sérialisé dans le programme Java pour vous assurer qu'il fonctionne efficacement (facultatif)

Exécuter un fichier Java. Jar Étape 9
Exécuter un fichier Java. Jar Étape 9

Étape 7. Enregistrez et fermez l'objet sérialisé en Java

Des astuces

  • Les améliorations de la sérialisation dans le kit de développement Java SE 6 vous permettent d'utiliser l'ObjectStreamClass pour rechercher n'importe quelle méthode pour gérer les objets de classe non sérialisables.
  • Pour améliorer les temps de lecture et d'écriture dans les grandes arborescences d'objets, utilisez le mot-clé "transient" pour les variables d'instance qui ne nécessitent pas de sérialisation. Cela augmentera les performances dans la mesure où vous ne lisez et n'écrivez plus de données inutiles dans le processus de sérialisation.

Mises en garde

  • Java sort une nouvelle version de son kit de développement presque chaque année. Les nouvelles versions incluent des mises à niveau et des modifications sur la façon dont vous pouvez sérialiser un objet en Java. Par conséquent, il est important de surveiller les changements dans la version que vous utilisez.
  • Lors de la sérialisation d'objets, vous ne pouvez pas chiffrer les flux de données. Par conséquent, vous devrez vous fier à d'autres applications ou processus de transport réseau secondaires pour protéger les données, si nécessaire.
  • Il n'y a actuellement aucune option qui vous permet d'écrire des objets dans un fichier à accès aléatoire. Au lieu de cela, vous pouvez utiliser les flux de sortie d'entrée Byte Array comme espace réservé à partir duquel lire et écrire les objets. Cependant, assurez-vous que l'objet entier est dans le flux Byte Array ou le processus échouera.

Conseillé: