Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2946 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Sauvegarde en JAVA

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Sauvegarde en JAVA

n°1729861
lezert
Posté le 08-05-2008 à 11:14:18  profilanswer
 

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

mood
Publicité
Posté le 08-05-2008 à 11:14:18  profilanswer
 

n°1729993
grisensko
Posté le 08-05-2008 à 18:54:32  profilanswer
 

Je ne suis pas certain de bien comprendre ta problèmatique, mais si tu utilise le JDK 1.6 je crois que la classe javax.tools.JavaCompiler pourrait t'être utile.
 
http://mindprod.com/jgloss/javacompiler.html
 
La class Java compiler te permet de compiler n'importe qu'elle .class (Ou un string)
 
 

n°1730116
Bidem
Posté le 09-05-2008 à 09:09:30  profilanswer
 

Citation :

Le fichier save.ser est bien crée mais quand je charge rien ne se passe.  

 

Pour moi, rien ne garanti que la sérialisation s'est bien passée car en cas d'exception tu ne fais pas d'affichage.
Il y a des try/catch/finally un peu partout mais ce n'est pas très propre

 

essaye comme ça :

Code :
  1. ObjectOutputStream oos = null;
  2. try {
  3.   // ouverture d'un flux de sortie vers le fichier "save.ser" 
  4.   FileOutputStream fos = new FileOutputStream("save.ser" );
  5.   // création d'un "flux objet" avec le flux fichier 
  6.   oos = new ObjectOutputStream(fos);
  7.   // sérialisation : écriture de l'objet dans le flux de sortie
  8.   oos.writeObject(new Object());
  9.   // on vide le tampon
  10.   oos.flush();
  11. } catch(IOException ioe) {
  12.   System.out.println("Erreur pendant la sérialisation :" );
  13.   ioe.printStackTrace();
  14. } finally {
  15.   // fermeture des flux
  16.   try {
  17.     if (oos != null) oos.close();
  18.   } catch(IOException ioe) {
  19.     System.out.println("Erreur pendant fermeture du flux :" );
  20.     ioe.printStackTrace();
  21.   }
  22. }



Message édité par Bidem le 09-05-2008 à 09:10:00
n°1730406
esox_ch
Posté le 09-05-2008 à 22:30:08  profilanswer
 

grisensko a écrit :

Je ne suis pas certain de bien comprendre ta problèmatique, mais si tu utilise le JDK 1.6 je crois que la classe javax.tools.JavaCompiler pourrait t'être utile.
 
http://mindprod.com/jgloss/javacompiler.html
 
La class Java compiler te permet de compiler n'importe qu'elle .class (Ou un string)
 
 


 
Interessant ... Tu l'as déjà utilisé? ça marche bien?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Sauvegarde en JAVA

 

Sujets relatifs
[Java/MySQL] interrogation bddLancer des fichiers java externes au programme
Formulaire java/html[Java] Déformer une image...
Exeption JAVAIntégrer base de données dans java
[Résolu] gestion mémoire en javaproblème de lecture/écriture sur entrée/sortie en Java
[java-eclipse]Problème de sauvegarde sous eclipsesauvegarde d'une expression reguliere en java
Plus de sujets relatifs à : Sauvegarde en JAVA


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR