Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

SAUVER DES OBJETS


Information sur la source

Catégorie :Divers Niveau : Débutant Date de création : 12/03/2004 Vu / téléchargé: 4 206 / 231

Note :
5,5 / 10 - par 4 personnes
5,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Ce code s'adresse à tous et plus en particulier à ceux qui se perdent un petit peu dans les types de sauvegarde JAVA.
 

Source

  • package SaveObjects;
  • import java.io.File;
  • import java.io.FileInputStream;
  • import java.io.FileOutputStream;
  • import java.io.ObjectInputStream;
  • import java.io.ObjectOutputStream;
  • public class MainClass
  • {
  • //CLASSE DE LANCEMENT
  • public static void main(String[] argq){
  • Class1 c = new Class1();
  • File f = new File("c:/fichier.obj");
  • //SAUVEGARDE LE FICHIER
  • try{
  • ObjectOutputStream fichier = new ObjectOutputStream(new FileOutputStream(f));
  • fichier.writeObject(c);
  • fichier.close();
  • }
  • catch(Exception e){e.printStackTrace();}
  • Class1 cToPrint = null;
  • //CHARGE LE FICHIER
  • try{
  • ObjectInputStream fichier2 = new ObjectInputStream(new FileInputStream(f));
  • cToPrint = (Class1)fichier2.readObject();
  • fichier2.close();
  • }
  • catch(Exception e){e.printStackTrace();}
  • System.out.println(cToPrint);
  • }
  • }
package SaveObjects;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public class MainClass 
{
  //CLASSE DE LANCEMENT
  public static void main(String[] argq){
    Class1 c = new Class1();
    File f = new File("c:/fichier.obj");
    //SAUVEGARDE LE FICHIER 
    try{
      ObjectOutputStream fichier = new ObjectOutputStream(new FileOutputStream(f));
      fichier.writeObject(c);
      fichier.close();
    }
    catch(Exception e){e.printStackTrace();}
    Class1 cToPrint = null;
    //CHARGE LE FICHIER 
    try{
      ObjectInputStream fichier2 = new ObjectInputStream(new FileInputStream(f));
      cToPrint = (Class1)fichier2.readObject();
      fichier2.close();
    }
    catch(Exception e){e.printStackTrace();}
    System.out.println(cToPrint);
  }
}

Conclusion

Voilà, j'espère que ce morceau de code va vous aider. N'oubliez pas le implements Serializable!!!
B@ron
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de neodante le 13/03/2004 09:35:40 administrateur CS

Tiens juste une petite remarque, met le mot serialisation dans ton titre puisque que c'est la technique que tu utilises, c'est juste un peu plus parlant .... sinon exemple clair, simple et concis ...
Aussi peut-être devrais-tu surcharger la méthode write() qui est la méthode utilisé lorsque tu sérialises et son opposé read() évidemment pour lire ...
@+

signaler à un administrateur
Commentaire de tds le 15/03/2004 08:33:47

Merci beaucoup pour ces astuces :)
B@ron [:p]

signaler à un administrateur
Commentaire de tds le 15/03/2004 08:34:19

Merci beaucoup pour ces astuces :)
B@ron [:p]

signaler à un administrateur
Commentaire de neodante le 15/03/2004 09:51:17 administrateur CS

Bah de rien !!
@++

signaler à un administrateur
Commentaire de speed_angel le 30/09/2004 09:28:16

Une petite question peut-etre un peu stupide...(désolé)

Est-ce que cette partie du code peut etre utiliser pour ecrire dans un fichier texte...(désolé prof incompéteant=moi dans la *"ç%"+""!*)  :

File f = new File("c:/fichier.obj");
    //SAUVEGARDE LE FICHIER
    try{
        ObjectOutputStream fichier = new ObjectOutputStream(new FileOutputStream(f));
        fichier.writeObject(c);
        fichier.close();
    }

Merci d'avance à l'âme charitable qui me répondra...

signaler à un administrateur
Commentaire de tds le 30/09/2004 09:31:42

Non pour cela il vaut mieux utiliser les Classes OutputStream... etc. Regarde dans la javadoc :)
http://java.sun.com/j2se/1.5.0/docs/api/index.html

B@ron {EU.BELGIUM}

signaler à un administrateur
Commentaire de speed_angel le 04/10/2004 22:45:38

Merci à vous....

signaler à un administrateur
Commentaire de neodante le 04/10/2004 23:41:54 administrateur CS

Aussi je pense qu'il serait bien que tu mettes un exemple de sérialisation en XML avec la classe XMLEncoder :

XMLEncoder e = new XMLEncoder(
                          new BufferedOutputStream(
                              new FileOutputStream("Test.xml")));
       e.writeObject(new JButton("Hello, world"));
       e.close();

C'est pareil sauf que ça sort du XML !!! ;-)
Aussi tu dois avoir certaines condition dans ta classe (Serializable, constructeur par défaut et des accesseurs pour les propriétés qui sont persistants ...)
@+

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,203 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.