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

Java Discussion :

Problème avec mon fichier properties


Sujet :

Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2010
    Messages : 434
    Points : 94
    Points
    94
    Par défaut Problème avec mon fichier properties
    Bonjour,

    J'ai décidé de créer un fichier properties : test.properties que j'ai mis dans le dossier src de mon projet.

    Voici le contenu de ce fichier :

    #this is the property config file
    stuff="i am the stuff"
    Je fais un test avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    String path=new File("").getAbsolutePath(); 
    		String pathProp = "test.properties";
    		Properties properties = new Properties();
    		try{
    			FileInputStream in = new FileInputStream(path + "\\src\\" + pathProp);
    		}
    		catch(IOException e){
    			System.out.println("Unable to load config file.");
    		}
    		System.out.println(properties.getProperty("stuff", "defaultStuff"));
    		System.out.println(properties.getProperty("thing", "defaultThing"));
    La console n'affiche pas "Unable to load config file." donc logiquement j'arrive à lire le fichier. Le problème c'est que la console affiche seulement les valeurs par défaut. Pour stuff elle affiche "defaultStuff" au lieu de "i am the stuff". Je ne vois pas d'où peux venir l'erreur. Si vous avez une idée je suis à votre écoute.

    Merci

  2. #2
    Membre expérimenté Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Points : 1 622
    Points
    1 622
    Par défaut
    Salut,

    Essais comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    String path=new File("").getAbsolutePath(); 
    		String pathProp = "test.properties";
    		Properties properties = new Properties();
    		try{
    			FileInputStream in = new FileInputStream( new File(path + "\\src\\" + pathProp) );
    		}
    		catch(IOException e){
    			System.out.println("Unable to load config file.");
    		}
                    properties.load(in);    
    		System.out.println(properties.getProperty("stuff", "defaultStuff"));
    		System.out.println(properties.getProperty("thing", "defaultThing"));
    Le Load() est important.

    Après pour les lister

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Enumeration stuffEnum= properties.propertyNames();
    while( stuffEnum.hasMoreElements() )
    {
    	String name = (String)stuffEnum.nextElement();
            String value = (String)props.getProperty( name );
    }

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2012
    Messages
    3 020
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2012
    Messages : 3 020
    Points : 16 092
    Points
    16 092
    Par défaut
    Salut,

    Tu as "juste" oublié de charger le fichier de properties...

    Il manque la ligne :

    Ton code ouvre le fichier mais il n'en fait rien. Donc tu récupère les valeurs par défaut.

    Edit : owned Allez, juste pour chipoter, le code de nico est incorrect parce qu'à l'endroit ou il a mis le load, le compilo ne connait pas la variable "in". :p

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2010
    Messages : 434
    Points : 94
    Points
    94
    Par défaut
    Ca marche avec le load

    Merci beaucoup

  5. #5
    Membre expérimenté Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Points : 1 622
    Points
    1 622
    Par défaut
    Citation Envoyé par Carhiboux Voir le message
    Edit : owned Allez, juste pour chipoter, le code de nico est incorrect parce qu'à l'endroit ou il a mis le load, le compilo ne connait pas la variable "in". :p
    Ahah, tu as raison !

    Mais bon c'est vendredi faut être sympa

  6. #6
    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,


    Quelques remarques :

    • Si le fichiers est dans les sources, et qu'il sera packagé dans le jar/war, il est préférable d'utiliser le ClassLoader pour le charger avec getClass().getRessourceAsStream("/" + pathProp) !

    • Ce type de code est erroné, car en cas d'IOException (si le fichier n'existe pas par exemple), on va quand même appeler properties.load(in), ce qui risque d'engendrer un NullPointerException.
      Ce bout de code devrait être situé dans le try/catch !

    • Le fichier n'est pas fermé.
      Il est impératif d'utiliser un try/finally (ou un try-with-ressource avec Java 7) pour le libérer proprement.
      Ca peut paraitre anodin, mais dans une application serveur cela peut s'avérer catastrophique si le code est executé plusieurs fois...



    a++

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

Discussions similaires

  1. Y a t'il un problème avec mon fichier xsl?
    Par missllyss dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 03/06/2008, 10h03
  2. Problème avec mon fichier header
    Par Kicker dans le forum Linux
    Réponses: 3
    Dernier message: 02/06/2008, 12h57
  3. Problème avec mon fichier d'entrées
    Par salseropom dans le forum C
    Réponses: 6
    Dernier message: 11/10/2007, 18h08
  4. problème avec les fichiers properties
    Par restricteur dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 18/09/2007, 11h17
  5. Problème avec mon fichier CSS
    Par bobic dans le forum Apache
    Réponses: 1
    Dernier message: 30/12/2006, 00h48

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