begin process at 2010 02 10 08:03:32
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Algorithme

 > 

Autre

 > 

Serialisation sans écraser des données


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Serialisation sans écraser des données

mercredi 2 janvier 2008 à 19:27:36 | Serialisation sans écraser des données

ddrstyle

  Bonjour à tous,

  Alors voilà, j'ai une petite question en ce qui concerne la sérialisation en Java. Je dois stocker (dans un ArrayList) les nom, prénom, pseudo... d'un joueur, puis sérialiser cette liste. Jusque là tout va bien. Car j'ai créé une fenêtre d'Inscription puis une fenêtre de Connexion (qui vérifie le pseudo et le mot de passe entrés avec la liste sérialisée préalablement). Sauf que ceci ne marche qu'avec un joueur, en effet si je créer un nouveau joueur la sérialisation à lieu mais écrase le fichier précèdent.
  Je souhaiterai donc savoir comment faire pour stocker tous les détails de chaque joueur dans le même fichier, ou créer un "Sauvegarde.ser" par joueur. Merci .

cf le code:

--------------------------------------------------------------------------------
    ArrayList liste = new ArrayList(6);
    JTextField Tf_i_Nom;
    JTextField Tf_i_Prenom;
    JTextField Tf_i_Pseudo;
    JTextField Tf_i_MotdePasse;
    JTextField Tf_i_ConfirmationMotdePasse;
    JTextField Tf_i_Credit;


if ((Tf_i_MotdePasse.getText()).equals(Tf_i_ConfirmationMotdePasse.getText()))
        {
            int credit_conversionInscription= Integer.parseInt(Tf_i_Credit.getText());
            Inscription joueur = new   Inscription(Tf_i_Nom.getText(),Tf_i_Prenom.getText(),Tf_i_Pseudo.getText(),Tf_i_MotdePasse.getText(),Tf_i_ConfirmationMotdePasse.getText(),credit_conversionInscription,true);
           
            if(credit_conversionInscription<=10000)
            {
                inscrit = true;

                liste.add(joueur.getNomInscription());
                liste.add(joueur.getPrenomInscription());
                liste.add(joueur.getPseudoInscription());
                liste.add(joueur.getMotDePasseInscription());
                liste.add(joueur.getConfirmationInscription());
                liste.add(joueur.getCreditInscription());
           
                try
                {
                    FileOutputStream fichier = new FileOutputStream("Sauvegarde_joueur.ser");
                    ObjectOutputStream oos = new ObjectOutputStream(fichier);
                    oos.writeObject(liste);
                    oos.flush();
                }
                catch (java.io.IOException io)
                {
                    io.printStackTrace();
                }

--------------------------------------------------------------------------------
jeudi 17 janvier 2008 à 11:24:33 | Re : Serialisation sans écraser des données

forcels

Réponse acceptée !
Hello,

Si tu a déjà un fichier existant, ce qu'il faut faire c'est lire le contenu de ton fichier par la programmation (getInputStream()), le sauvegarder dans une variable, ajouter ton nouveau joueur à la variable, et  la remettre dans le fichier. Ainsi, tu gardes toutes tes données...

Bon si ton arrayList devient très grande, ça risque de faire ralentir ton application... Donc ta solution de faire plusieurs fichiers peut aussi être envisageable. Bon après c'est un peu plus embêtant pour faire une recherche pour tester les logins, mais c'est tout à fait possible.
En connaissant exactement quels fichiers tu dois lire (par exemple tu les mets dans un dossier spécifique), tu fais une boucle dans le dossier et tant qu'il trouve un fichier, il le lit et vérifie le login... Perso je n'ai jamais testé mais je pense que ça peut être possible... Question temps, je pense que c'est plus lent de faire ainsi que de travailler avec un seul fichier. Donc à tester!


Perso je ferais avec l'arrayList en mettant tout dans un fichier. Cette solution me semble beaucoup plus simple à implémenter que l'autre...

Voila j'espère que j'ai pu t'éclairer un peu :)

forcels

jeudi 17 janvier 2008 à 14:34:52 | Re : Serialisation sans écraser des données

ddrstyle

Merci ! J'ai opté pour la solution avec un fichier unique de sauvegarde. En effet, je lis le contenu du fichier puis ajoute à la suite les données d'un autre joueur puis re-sérialise le tout. Méthode efficace pour un nombre pas trop important de joueurs.

Merci encore pour ta réponse.

ddr-style


Cette discussion est classée dans : liste, tf, jtextfield, joueur, gettext


Répondre à ce message

Sujets en rapport avec ce message

requete sql et JTextfield [ par abdouinfomiage ] slt less amis, s'il vous plait j besoin de votre aide conçernant une requte sql d'ajout : public void ajout()    {     try      {  &nbsp getText = probleme !!! [ par niko29940242 ] salut all, j'ai un pti probleme : j'utilise une petite interface graphique avec des entrées de texte utilisateur :public class test { JTextField n JTextField [ par cid019 ] Bnojour,voila j'ai un probleme avec mon JTextField. Je teste s'il est vide et auquel cas j'affiche un message d'erreur.Le probleme c'est que meme lors Problème de focus [ par mouss11 ] J'ai créé une JDialog avec plusieurs champs JTextField, des JLabel, JComboBox, etc.Quand ma fenêtre apparait, j'aimerai que ce soit mon premier JTextF liste des valeur des parametres de l'URL [ par fredmorvant29 ] bonjour, je récupere mes associations clé-valeurs ds une map a laide de request.getParameterMap() et je place ensuite les valeurs dans une colection parser xml [ par fredmorvant29 ] bonjour je veu parser un flux xml pour en retirer les info sous forme de liste.ex: toto 10</p Liste des tables d'oracle... [ par cdryk ] Mon code :connect = DriverManager.getConnection(url,login,pass);metadata = connect.getMetaData();res = metadata.getTables("nom_base", null, null, null Othello et fonction d'évaluation [ par gouigoui ] Salut à tousDans le cadre de mes études, je fais un peu mumuse avec le jeu othello. J'ai implémenté un joueur, avec un algorithme de recherche de type Invalider la saisie de quote dans un JTextField [ par srx ] Bonjour,j'aurais besoin de savoir comment on peut faire pour que lorsque l'on saisie une quote (') dans un JTextField, celle-ci ne soit pas affichée d JList [ par cid019 ] bonjour,j'ai un probleme d'evenement avec ma liste:public void valueChanged(ListSelectionEvent e) { if (e.getSource() == l.getListe()) { for (int


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales