IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Probleme dans la serialization d'un objet


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 6
    Par défaut Probleme dans la serialization d'un objet
    Salut à tous,

    Je suis étudiant en L2 d'informatique, et j'ai un projet à réaliser qui consiste en une simulation de colonie de fourmis avec des règles assez simples.
    Les fourmis se déplacent "aléatoirement" sur une Grille à la recherche de nourriture tout en déposant de la phéromone (2 types différents selon qu'elles transportent ou non de la nourriture), mais là n'est pas le problème.
    Pour la présentation de mon projet j'aimerai pouvoir sauvegarder certaines grilles plus jolies/utiles/optimisées que d'autres, mais pour ce faire il faut que je puisse sérialiser les objets...
    Donc, ma grille est composée d'un tableau de tableau d'entier, d'un tableau de tableau d'objets (des cases), d'une colonie, et d'une source de nourriture.
    Ces objets ont eux même des attributs (nombreux ou pas), comme par exemple colonie qui a en attribut une liste de fourmi, les fourmis qui sont caractérisées par une position et un état, etc...
    Ma question est, la sérialisation du panneau (l'objet représentant ma grille) va-t-elle entraîner la sérialisation de tout les objets composants mon Panneau, et les objets caractérisants les objets qui caractérisent mon Panneau (oula je me perd dans mon français ), ou dois-je refaire une sérialisation pour chaque objet qui caractérisent mon Panneau?

    J'ai un autre problème concernant le ré-affichage d'une grille sauvegardée, du choix de quelle grille sauvegardée veut on charger sur la fenêtre, et d'autres encore, mais commençant à peine la sérialisation je pense qu'il serait plus judicieux de me poser les questions une à une.
    Je vous mets ici le code de mon Serializer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.ObjectOutputStream;
    import java.io.ObjectInputStream;
     
    public class Serialization{
      private Panneau pan;
     
      public Serialization(Panneau p){
        this.pan = p;
      }
     
      public void serialize(){
        try{
          FileOutputStream fos = new FileOutputStream("save.ser");
          ObjectOutputStream oos = new ObjectOutputStream(fos);
          oos.writeObject(this.pan);
          oos.close();
        }catch(FileNotFoundException e){
          e.printStackTrace();
        }catch(IOException e){
          e.printStackTrace();
        }
      }
     
      public Panneau deserialize(){
        Panneau p = null;
        try{
          FileInputStream fis = new FileInputStream("save.ser");
          ObjectInputStream ois = new ObjectInputStream(fis);
          p = (Panneau)ois.readObject();
        }catch(FileNotFoundException e){
          e.printStackTrace();
        }catch(IOException e){
          e.printStackTrace();
        }catch(ClassNotFoundException e){
          e.printStackTrace();
        }
        return p;
      }
    }
    Merci d'avoir pris le temps de lire,

    Sam

    PS: Si vous avez besoin de plus d'informations ou de morceaux de codes (ce que je ne pense pas nécessaire à la résolution de ma question, je peux avoir tort ), n'hésitez pas à les demander !

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Hello,

    pour être sérialisée, une classe doit implémenter Serializable.

    Tous les champs qui implémentent Serializable dans un objet, sont également sérialisés quand on sérialise cet objet. Pas besoin de s'occuper de gérer le contenu d'un objet.

    Les types primitifs, les tableaux et la plupart des data types fournis avec Java implémentent Serializable. Tu as juste besoin de le préciser dans tes classes à toi.

    (Mieux, si un même objet est référencé à plusieurs endroit dans le contenu d'un objet englobant, il ne sera sérialisé qu'une fois, et réinjecté partout à la désérialisation. Cela permet même d'avoir des objets qui se référencent les uns les autres.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2019
    Messages : 6
    Par défaut
    Merci beaucoup,
    Je pensais avoir déjà répondu, mais j'ai apparemment oublié!
    Je place en résolu !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme dans la creation des objet avec condition
    Par yassin123441 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 28/04/2009, 11h03
  2. Réponses: 9
    Dernier message: 08/01/2009, 18h08
  3. Réponses: 12
    Dernier message: 25/04/2007, 11h36
  4. Probleme dans une clause like !
    Par adil dans le forum Langage SQL
    Réponses: 6
    Dernier message: 15/07/2003, 16h47
  5. Probleme dans ma requete
    Par Kuroro dans le forum Requêtes
    Réponses: 2
    Dernier message: 11/07/2003, 11h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo