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

Langage Java Discussion :

Sauvegarde en JAVA


Sujet :

Langage Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 57
    Par défaut Sauvegarde en JAVA
    Bonjour,

    Voilà mon probleme est de sauvegarder une classe afin que je puisse la relancé à l'identique quand je veux.

    Ma classe pricipale s'appelle affichageJeu et contient une barre de menu permettant de lancer un nouveau jeu, sauvegader ou charger.

    J'ai utiliser Serializable mais ça marche pas. Le fichier save.ser est bien crée mais quand je charge rien ne se passe.

    Code de ma classe Affichage Jeu qui implemente Serializable:

    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
    public class AffichageJeu extends JFrame implements ActionListener,Serializable
    {
    ..................... Code.......................
    }
     
     
     
    public AffichageJeu(ListeJoueur les_Joueurs,Jouer le_jouer)
    {
    ................. CODE ...............
    }
     
     
     
    public void actionPerformed(ActionEvent e)
    {
    Object source = e.getSource();
     
    if (source == Sauver)
    {
    System.out.println("Sauvegarde en cour......" );
    try {
    // ouverture d'un flux de sortie vers le fichier "save.ser" 
    FileOutputStream fos = new FileOutputStream("save.ser" );
     
    // création d'un "flux objet" avec le flux fichier 
    ObjectOutputStream oos= new ObjectOutputStream(fos);
    try {
    // sérialisation : écriture de l'objet dans le flux de sortie 
    oos.writeObject(this);
    // on vide le tampon 
    oos.flush();
    }
    finally{
    //fermeture des flux 
    try{
    oos.close();
    }
    finally { fos.close();}
    }
    } catch(IOException ioe) {}
     
    System.out.println("Sauvegarde Reussi !!!" );
     
    }
     
     
     
    if (source == Charger)
    {
    AffichageJeu chargementJeu=null;
     
    try {
    // ouverture d'un flux d'entrée depuis le fichier "save.ser" 
    FileInputStream fis = new FileInputStream("save.ser" );
    // création d'un "flux objet" avec le flux fichier 
    ObjectInputStream ois= new ObjectInputStream(fis);
    try {
    // désérialisation : lecture de l'objet depuis le flux d'entrée 
    System.out.println("Chargement en cour..." );
    chargementJeu = (AffichageJeu) ois.readObject();
    }
    finally{
    // on ferme les flux 
    try{
    ois.close();
    }
    finally {fis.close();}
    }
    }
    catch(IOException ioe) {}
    catch(ClassNotFoundException cnfe) {}
     
    (chargementJeu != null)
    {
    System.out.println("Chagement Effectuer !!!" );
    }
     
    this.dispose();
    chargementJeu.setVisible(true);
    chargementJeu.pack();
     
    }

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 63
    Par défaut
    Salut je crois que j'ai le même problème que toi...
    Je suis en train de me demander si la classe courante peut se sérialiser elle-même (à priori je n'y vois pas d'inconvénients).

    Sinon, attention au fait que tu ne teste pas les exceptions et que tu affiche "sauvegarde réussie" ou "chargement effectué" sans vraiment être sure qu'une exception soit survenue.

  3. #3
    Membre chevronné
    Avatar de Glob
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Avril 2002
    Messages
    428
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Avril 2002
    Messages : 428
    Par défaut
    Citation Envoyé par jph_void Voir le message
    Je suis en train de me demander si la classe courante peut se sérialiser elle-même (à priori je n'y vois pas d'inconvénients).
    Hello.

    J'ai pas lu le détail de tout ça, mais à mon avis:
    - le mécanisme qui gère la sérialisation du modèle (on fait du MVC je suppose) doit être extérieur au modèle lui-même;
    - le truc que l'on serialize sera le modèle ou une partie de celui-ci, voir à la limite extrême un petit bout de contrôleur. Une classe étendant JFrame ne fera certainement pas partie du modèle.

    A+

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 63
    Par défaut
    Citation Envoyé par Glob Voir le message
    Hello.

    J'ai pas lu le détail de tout ça, mais à mon avis:
    - le mécanisme qui gère la sérialisation du modèle (on fait du MVC je suppose) doit être extérieur au modèle lui-même;
    - le truc que l'on serialize sera le modèle ou une partie de celui-ci, voir à la limite extrême un petit bout de contrôleur. Une classe étendant JFrame ne fera certainement pas partie du modèle.

    A+
    Salut, merci pour ton intervention,
    Alors en ce qui me concerne j'ai sorti les méthodes de (dé)sérialisation de la classe modèle (chez moi il s'agit bien d'un modèle). Ce sont des méthodes statiques d'une classe dédiées à la sérialisation. Et j'ai toujours le même problème : pas d'erreur, fichier présent mais le contenu de mon objet n'est pas là (vector vides, ...)

    Je pense que nos 2 problèmes doivent être liés.

Discussions similaires

  1. Réponses: 0
    Dernier message: 07/10/2009, 14h03
  2. selenium RC lancer un testcase sauvegardé en .java
    Par meteteou dans le forum Test
    Réponses: 1
    Dernier message: 02/04/2008, 11h15
  3. sauvegarder un objet java avec XML
    Par dark2 dans le forum Format d'échange (XML, JSON...)
    Réponses: 13
    Dernier message: 07/02/2007, 13h10
  4. Sauvegarder une instance d'une classe Java dans une BDD MySQL
    Par malag dans le forum Administration
    Réponses: 1
    Dernier message: 03/09/2006, 19h23

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