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 :

modification fichier avec hashmap


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 112
    Par défaut modification fichier avec hashmap
    Bonjour à tous,

    G un fichier dans lequel j'ai les profils des personnes: login, mot de passe, adresse.
    Pour lire ce fichier je fais avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ObjectInputStream ois= new ObjectInputStream(new FileInputStream("profils.ser"));
    Pour écrire dedans je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ObjectOutputStream ois= new ObjectOutputStream(new FileOutputStream("profils.ser"));
    Mon probleme:
    J'ai une fonction modifierProfil(loginclient,mot de passe,adresse) qui permet à partir d'un login de modifier le mot de passe et/ou l'adresse.
    Mes profils sont stockés dans une hashmap(tousLesprofils) et la clé est le login.
    Actuellement cette fonction ne marche pas elle ne modifie rien.

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ObjectOutputStream oos= new ObjectOutputStream(new FileOutputStream("profils.ser"));
    Profil profilClient = (Profil) tousLesprofils.get(loginclient);
    profilclient.setProfil(password,nom,adresse);
    oos.writeObject(profilClient);
    oos.close();
    Je sais pas si j'utilise writeObject() ou readObject() pour qu'elle marche. De plus setProfil ne va pas mais je sais par quoi le remplacer.

    Merci d'avance

  2. #2
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    As tu un message d'erreur. Si oui il serait bon de nous le faire partager ...

    Citation Envoyé par icicmoi
    je sais pas si j'utilise writeObject() ou readObject() pour qu'elle marche. De plus setProfil ne va pas mais je sais par quoi le remplacer.
    C'est à dire. Il n'y a rien de modifié dans le fichier ?
    Et l'ibjet profil, sa valeur est bien mise à jour ?

    Par quoi veux tu remplacer le setProfil ? Moi en tous cas je la connais pas cette classe Profil. donc je peux pas grand chose ...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 112
    Par défaut
    En fait je fais une appli client serveur msn.
    Je fais de la sérialisation. L'utilisateur a la possibilité de s'inscrire de se connecter et de modifier son profil.Lorsque celui ci s'inscrit (login,mot de passe,adresse) tout est ecrit dans le fichier profil.ser. Cela marche.
    Par contre si l'utilisateur veut modifier son profil par exemple changer son adresse actuellement il ne peut pas : l'insertion de la modification de l'adresse dans profil.ser ne se fait pas.Et c'est la mon probleme.
    Ci dessous le code pour l'inscription qui marche:
    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
    public boolean connexion(String loginClient, String motDePasse, String etat, Client leClient) throws FileNotFoundException, IOException, ClassNotFoundException
    	{
    		ObjectInputStream ois = new ObjectInputStream(new FileInputStream("profils.ser"));
    3
    		Profil profilClient = (Profil) tousLesProfils.get(loginClient);
    		if (profilClient != null) {
    			if (profilClient.getMotDePasse().compareTo(motDePasse) == 0) {
    				profilClient.setStubClient(leClient);
    				this.modifierEtat(loginClient, etat);
    				return true;
     
    			}
    		}
    		ois.close();
    		return false;
    	}
    Et mon code pour modifier le profil d'un utilisateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("profils.ser"));
    		Profil profilClient = (Profil) tousLesProfils.get(loginClient);
    		profilClient.setProfil(password, nom, prenom, adresse, telephone);
    		oos.writeObject(profilClient);
    		try {
    			oos.close();
    		} catch (IOException e) {
     
    			e.printStackTrace();
    		}
    		return test;
    De plus en faisant des tests je me suis rendue compte que cette methode setProfil marche bien.C'est au moment de modifier par exemple l'adresse dans le fichier profil.ser que ca marche pas donc ici au moment du writeObject.
    voici ma methode setProfil qui modifie un profil qui se trouve dans la classe Profil:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public void setProfil(String password, String nom, String prenom, String adresse, String telephone){
    		this.motDePasse = password;
    		this.adresse = adresse;
    		this.nom = nom;
    		this.prenom= prenom;
    		this.telephone = telephone;
    	}
    Je n'ai pas non plus d'erreur du tout mais si je l'affiche je vois bien que ca na rien changé.

  4. #4
    Membre Expert Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Par défaut
    En résumé tu arrives lire dans un fichier. Tu arrives enregistrer une HashMap.

    Et tu n'arrives pas à modifier un simple attribut java? C'est ca ou j'ai rien compris. Parce que faut dire que ton explication est pas super très mega clair.

    Ton fichier est crée? Crée mais avec rien dedans? Crée mais avec les anciennes valeurs? Est tu sur que tu réécrase le fichier ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 112
    Par défaut
    Désolé pour l'explication

    j'arrive à lire le fichier "profil.ser" .
    j'arrive à enregistrer des nouveaux profils de type Hashmap dans ce fichier.
    Mais je n'arrive pas à modifier quelquechose déjà existant dans le fichier par exemple le telephone. sachant que j'utilises la sérialisation

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 112
    Par défaut
    pour l'essai de modification je reste toujours avec les anciennes valeurs ca ne modifie rien dans le fichier

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/05/2007, 16h55
  2. Réponses: 10
    Dernier message: 05/01/2007, 20h54
  3. Modification attributs d'un fichier avec PHP
    Par zetta dans le forum Langage
    Réponses: 1
    Dernier message: 03/07/2006, 11h55
  4. Modification d'un fichier avec vi
    Par fabszn dans le forum Applications et environnements graphiques
    Réponses: 8
    Dernier message: 05/01/2006, 11h50

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