Authentification de joueurs & sérialisation

Résolu
le_rubix_cube Messages postés 3 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 2 juin 2009 - 1 juin 2009 à 15:23
le_rubix_cube Messages postés 3 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 2 juin 2009 - 2 juin 2009 à 22:55
Bonjour,
Je réalise un jeu pour un projet ou enregistrement et connexion des joueurs. Pour cela j'ai mis en place de la sérialisation binaire avec stockage des logins et mots de passe des joueurs dans un fichier binaire.
Les joueurs peuvent donc s'enregistrer , mais je ne sais pas comment m'y prendre pour que ceux-ci puissent ensuite se connecter. Pour cela il faut que je vérifie leur

login et leur mot de passe dans le fichier binaire.



Avez-vous une idée ?





Merci d'avance.
@+





rubixcube

2 réponses

le_rubix_cube Messages postés 3 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 2 juin 2009
1 juin 2009 à 18:39
Bon, je crois avoir trouver, en fait. C'est simplement en désérialisant d'abord le fichier que l'on peut connaître ce qui est dedans.

Par contre ce que je me demande maintenant, c'est :
Comment sérialiser plusieurs objets(dans ce cas, plusieurs joueurs) dans un même fichier ?

Merci d'avance.

rubixcube
3
le_rubix_cube Messages postés 3 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 2 juin 2009
2 juin 2009 à 22:55
J'arrive à sérialiser plusieurs joueurs grâce au booléen true de

FileOutputStream
, mais je n'arrive pas à les lire tous, en fait je ne lis que le ou les premiers enregistrements.
J'ai refais un code super simple pour vérifier que le problème ne venait pas d'ailleurs, voici  mon code :

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;

public class SerialisationT {

        private static ArrayList lesPersonnes = new ArrayList();
        private static String p1 = new String("gerard");
        private static String p3 = new String("bilbo");
       
        static public void main(String[] args) {
            sauve();
            restore();

        }
       
        public static void sauve() {
             {
                 try {FileOutputStream f = new FileOutputStream("score",true);
                 ObjectOutputStream s = new ObjectOutputStream(f);
                      lesPersonnes.add(p1);// ajout de données dans l'arraylist
                      lesPersonnes.add(p3);// ajout de données dans l'arraylist
                      s.writeObject(lesPersonnes);
                      s.flush();// sauvegarde de l'arraylist
                      System.out.println(lesPersonnes+ " a ete serialise");

                      s.close();//ferme le flux
                     }
                 catch(IOException e) {e.printStackTrace();}
             }
        }
        public static void restore() {
         try {
             FileInputStream f = new FileInputStream("score");
             ObjectInputStream s = new ObjectInputStream(f);

             lesPersonnes= (ArrayList)   s.readObject();
                System.out.println(lesPersonnes + " a ete deserialise");

           

                   for(int i = 0; i < lesPersonnes.size(); i++)//on lie les données de l'arraylist
                   {
                           System.out.println("Personne "+i+"\n" +lesPersonnes.get(i) );
                   }
        
             }
         catch(IOException e) {e.printStackTrace();}
         catch(ClassNotFoundException cnfe) {cnfe.printStackTrace();}

       }
    }

Quelqu'un a une idée ? Je galère vraiment là !

rubixcube
3
Rejoignez-nous