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

Entrée/Sortie Java Discussion :

Ecriture/lecture de Properties dans un fichier


Sujet :

Entrée/Sortie Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 27
    Points : 20
    Points
    20
    Par défaut Ecriture/lecture de Properties dans un fichier
    Salut à tous...

    voila... je sais que la question sur les property est souvent posée... j'ai donc fait une recherche mais je n'arrive toujours pas a comprendre quelque chose...

    comment utiliser les setproperty....

    voila ce que j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Properties prop = new Properties();
    FileInputStream in = new FileInputStream("./propriete/config.properties"); 
    FileOutputStream out=new FileOutputStream("./propriete/config.properties");
    prop.load(in); 
    in.close();
    prop.setProperty("firstuse","test"); // firstuse et la clé que je veux modifier
    prop.remove("firstuse");
    tout ca dans un try catch...

    le resultat est que je me retrouve avec mon fichier properties vide... .

    donc vraiment désolé de cette question mais si vous aviez un exemple


    merci beaucoup...

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Points : 635
    Points
    635
    Par défaut
    Ben si tu fais prop.remove("firstuse"); tu enlèves ce que tu viens d'ajouter !
    Et puis je ne vois l'endroit ou tu sauvegarde dans le fichier du dois faire prop.store(.,.) à la fin.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    merci beaucoup déja pour ta réponse...


    j'ai donc fait ce que tu m'a dit...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	prop.setProperty("firstuse","test");
    	prop.store(out,"test");
    le problème c'est que cela me supprime tous mon fichier... mais cela ajoute bien firstuse....

    donc est ce que cela veut dire qu'a chaque fois que je veux faire un setProperty je dois réecrire mon fichier en entier ???

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Le problème vient de ce bout de code là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FileInputStream in = new FileInputStream("./propriete/config.properties"); 
    FileOutputStream out=new FileOutputStream("./propriete/config.properties");
    Le fait d'ouvrir deux fois le même fichier en lecture et en écriture te fais perdre le contenu du fichier. Lorsque tu l'ouvres en écriture il est vidé, et donc même si tu l'as ouvert en lecture juste avant, le fichier sera vide et tu ne lira rien du tout... Ceci n'est pas propre à Java mais à la gestion des fichiers des systèmes d'exploitations, et ce genre de code produit le même résultat quelque soit le langage de programmation et le système...

    Il faut bien séparer les deux codes (sans oublier de fermer les fichiers dans un bloc finally), par exemple :
    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
    20
    	Properties prop = new Properties();
     
    	// Lecture du fichier :
    	FileInputStream in = new FileInputStream("./propriete/config.properties");
    	try {
    		prop.load(in);
    	} finally {
    		in.close();
    	}
     
    	// Modification des properties :
    	prop.setProperty("firstuse", "test");
     
    	// Ecriture du fichier :
    	FileOutputStream out = new FileOutputStream("./propriete/config.properties");
    	try {
    		prop.store(out,"test");
    	} finally {
    		out.close();
    	}
    a++

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    merci beaucoup de ton explication parfaitement claire...


    je test...

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    merci beaucoup ca marche nickel.... par contre c'est bizarre il me reorganise completement le fichier... plus rien n'est à la meme place...


    en tout cas merci

  7. #7
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Heero_2040
    merci beaucoup ca marche nickel....
    Penses au bouton

    Citation Envoyé par Heero_2040
    par contre c'est bizarre il me reorganise completement le fichier... plus rien n'est à la meme place...
    C'est "normal"... enfin en quelque sorte...

    La classe Properties ne conserve pas l'ordre des éléments... Elle perd même les éventuelles commentaires...

    a++

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    encore une fois merci... j'ai pu bien avancer...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ecriture et lecture de class dans un fichier
    Par Dam06 dans le forum C++
    Réponses: 1
    Dernier message: 17/04/2008, 10h25
  2. Ecriture à une position donné dans un fichier
    Par xarius dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 29/05/2006, 16h05
  3. lecture d'éléments dans mon fichier
    Par gillou4 dans le forum C
    Réponses: 9
    Dernier message: 23/10/2005, 16h19
  4. Problème lecture de nombre dans un fichier en c++
    Par knecmotet dans le forum C++
    Réponses: 1
    Dernier message: 28/10/2004, 15h48
  5. Réponses: 13
    Dernier message: 14/06/2003, 22h15

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