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

Collection et Stream Java Discussion :

ArrayList java et Sérialisation


Sujet :

Collection et Stream Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Par défaut ArrayList java et Sérialisation
    Je place dans un ArrayList des données puis je sauvegarde l'ArrayList, pour l'instant sa va. Puis je souhaite restaurer les données contenu dans l'ArrayList, et là : impossible ...

    Voilà la fonction de sauvegarde qui fonctionne :
    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
     
         private  ArrayList al = new ArrayList();
     
         public void sauve_score()
         {
          try {FileOutputStream f = new FileOutputStream("score.txt");
               ObjectOutputStream s = new ObjectOutputStream(f);
               al.add(killInt);// ajout de données dans l'arraylist
               al.add(compte);// ajout de données dans l'arraylist
               s.writeObject(al);s.flush();// sauvegarde de l'arraylist
               s.close();//ferme le flux
              }
          catch(IOException e) {e.printStackTrace();}
     
         }

    Et la fonction de restauration qui indique une erreur de syntaxe au niveau de readObject() :
    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
     
      public void restaure_score()
         {
          try {FileInputStream f = new FileInputStream("score.txt");
               ObjectInputStream s = new ObjectInputStream(f);
     
     
                 al= (ArrayList)   s.readObject();// ERROR SYNTAX
     
     
                      for(int i = 0; i < al.size(); i++)//on lie les données de l'arraylist
                    {
                            System.out.println( al.get(i) );
                    }
     
              }
          catch(IOException e) {e.printStackTrace();}
     
        }


    Donc, il semblerait que readObject() ne puisse pas être appliqué aux arrayList, alors que writeObject() le peut ...
    Comment je corrige le problème ?( sans utiliser un tableau d'entier car ce n'est pas le but rechercher surtout si j'ai des données à l'infini stocké sur un serveur :p)

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Par défaut Re
    al = s.readObject(); // ERROR SYNTAX

    s.readObject(al); // ERROR SYNTAX

    al = (ArrayList) s.readObject(); // ERROR SYNTAX




    Si quelqu'un à une idée

  3. #3
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Par défaut
    Bonjour,

    Je n'ai pas regardé ton code plus que ca, mais je pense que dans la méthode restaure_score, la méthode readObject() doit pouvoir remonter une ClassNotFoundException.
    Il faut que tu traites cette exception dans un catch (comme pour IOException).

    Est ce que ça correspond à ton message d'erreur de compilation?

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Par défaut
    c'est pas une erreur de compilation , mais une erreur de syntaxe : donc je peut même pas la lancer la fonction restaure().

  5. #5
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Par défaut
    Une erreur de compilation ne te permettra pas non plus de lancer ton application.
    L'info que je t'ai donné fait parti des erreurs de toute façon.
    Peux tu en dire plus sur l'erreur que tu as?

  6. #6
    Membre émérite Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Par défaut
    Je suis d'accord avec Eric39 rajoute le ClassNotFoundException dans le catch et ça devrai mieux se passer.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Par défaut Re
    Merci beaucoup , en rajoutant cette ligne :

    catch(ClassNotFoundException e){e.printStackTrace();}


    sa fonctionne super

    C'était vraiment une erreur bête.

Discussions similaires

  1. Sérialiser un ArrayList java en XML
    Par absot dans le forum XML/XSL et SOAP
    Réponses: 0
    Dernier message: 22/12/2009, 19h26
  2. Bug arrayList Java
    Par Mickael2604 dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 09/10/2009, 22h57
  3. Problème ArrayList JAVA
    Par Tsquare dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 29/12/2008, 17h52
  4. StringTokenizer ArrayList java
    Par flora806 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 27/03/2008, 14h29
  5. Erreur ArrayList java 3.2
    Par meddy dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 01/10/2007, 12h14

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