Cuillère Posté(e) 2 juillet 2010 Share Posté(e) 2 juillet 2010 Bonjour à tous. J'ai un petit problème pour sérialiser mon arrayList et pour la récupérer. Mon code : public static void serialiser(ArrayList alp, String path) { ObjectOutputStream serialise; try { serialise = new ObjectOutputStream(new FileOutputStream(path)); serialise.writeInt(alp.size()); for (int i =0; i < alp.size(); i++){ serialise.writeObject(alp.get(i)); serialise.flush(); } serialise.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static ArrayList deserialiser(String path) { ArrayList retour = new ArrayList(); ObjectInputStream deserialise; try { deserialise = new ObjectInputStream(new FileInputStream(path)); for (int i = 0; i < deserialise.readInt(); i++){ Point p = (Point)deserialise.readObject(); retour.add(p); } } catch (StreamCorruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } return retour; } Quelqu'un aurait une idée ? Merci :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
popolbx Posté(e) 2 juillet 2010 Share Posté(e) 2 juillet 2010 et c'est quoi le problème ? exception ? plantage ? rien ? juste comme ça ce genre de code me fait toujours peur: for (int i = 0; i < deserialise.readInt(); i++){ je ne sais jamais si la clause conditionnelle du for est executée 1 fois ou à chaque tour (ça dépend du compilateur et du langage etc..) donc moi j aurais fait : int max = deserialise.readInt(); for(int i=0;i bon après le pb vient surement pas de là. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Nivek Posté(e) 3 juillet 2010 Share Posté(e) 3 juillet 2010 Je confirme que les 2 dernières instructions dans le for() sont exécutées à chaque tour. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Nivek Posté(e) 3 juillet 2010 Share Posté(e) 3 juillet 2010 Ceci dit, ArratList implémente Serializable, tu ne devrais pas avoir à iterer toi-même dessus. Soit Point est deja serialisable et tu peux directement faire un writeObjet de ta liste, soit il ne l'est pas et tu vas devoir t'arranger pour qu'il le soit. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.