Tom's Guide > Forum > Programmation > Sauvegarde en JAVA

Sauvegarde en JAVA

Forum Programmation : Sauvegarde en JAVA

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

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 :
  1. public class AffichageJeu extends JFrame implements ActionListener,Serializable
  2. {
  3. ..................... Code.......................
  4. }
  5.  
  6. public AffichageJeu(ListeJoueur les_Joueurs,Jouer le_jouer)
  7. {
  8. ................. CODE ...............
  9. }
  10. public void actionPerformed(ActionEvent e)
  11. {
  12.         Object source = e.getSource();
  13. if (source == Sauver)
  14. {
  15.     System.out.println("Sauvegarde en cour......" );
  16.     try {
  17.           // ouverture d'un flux de sortie vers le fichier "save.ser"
  18.         FileOutputStream fos = new FileOutputStream("save.ser" );
  19.         // création d'un "flux objet" avec le flux fichier
  20.         ObjectOutputStream oos= new ObjectOutputStream(fos);
  21.         try {
  22.               // sérialisation : écriture de l'objet dans le flux de sortie
  23.               oos.writeObject(this);
  24.               // on vide le tampon
  25.               oos.flush();
  26.               }
  27.         finally{
  28.                   //fermeture des flux
  29.                   try{
  30.                       oos.close();
  31.                       }
  32.                   finally { fos.close();}
  33.                   }
  34.               } catch(IOException ioe) {}
  35.         System.out.println("Sauvegarde Reussi !!!" );
  36.        
  37. }
  38. if (source == Charger)
  39. {
  40.   AffichageJeu chargementJeu=null;
  41.            
  42.   try {
  43.       // ouverture d'un flux d'entrée depuis le fichier "save.ser"
  44.       FileInputStream fis = new FileInputStream("save.ser" );
  45.       // création d'un "flux objet" avec le flux fichier
  46.       ObjectInputStream ois= new ObjectInputStream(fis);
  47.       try {
  48.             // désérialisation : lecture de l'objet depuis le flux d'entrée
  49.             System.out.println("Chargement en cour..." );
  50.             chargementJeu = (AffichageJeu) ois.readObject();
  51.             }
  52.       finally{
  53.     // on ferme les flux
  54.                 try{
  55.                     ois.close();
  56.         }
  57.               finally {fis.close();}
  58.                 }
  59.         }
  60.   catch(IOException ioe) {}
  61.   catch(ClassNotFoundException cnfe) {}
  62.     (chargementJeu != null)
  63.     {
  64.             System.out.println("Chagement Effectuer !!!" );
  65.       }
  66.          
  67.       this.dispose();
  68.       chargementJeu.setVisible(true);
  69.       chargementJeu.pack();
  70. }


Message édité par lezert le 08-05-2008 à 11:13:05
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

ce que tu sauvegardes, c'est une classe dans un certain état.
lorsque tu récupère le fichier, tu révupère ta classe dans l'état où tu l'as sauvegarder.

A priori, ça marche.

------------------------------ Don't panic!
mouths91 à dit : "[...]des rageux comme kelnem"
Répondre à Vinz42

Je c'est mais ça marche pas et je comprends pas pourquoi !!!

Répondre à lezert
Tom's Guide > Forum > Programmation > Sauvegarde en JAVA
Aller à :

Il y a 327 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens