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 :

Charger un fichier de properties


Sujet :

Entrée/Sortie Java

  1. #1
    Membre actif
    Charger un fichier de properties
    Bonjour,

    J'ai une class java dans un package (com.cli.app par exemple) et je veux lire une clé dans un fichier de properties qui se trouve, quant à lui, directement sur la racine (cad dans le dossier src).

    chemin vers le fichier java: src/com/cli/app/Test.java
    chemin ver le fichier properties: src/test.properties

    Je n'arrive pas à localiser le fichier de properties à partir de ma classe java: quand je met par exemple
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
     
    ClassLoader.class.getResourceAsStream ("test.properties");

    ça me retourne un NULL
    pareil quad j'utilise
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
     Test.class.getResourceAsStream("test.properties");


    Avez vous une aidée ?
    Merci !!

  2. #2
    Modérateur

    Bonjour,

    Il me semble que les fichier .properties sont associé en générale à la classe Properties (cf javadoc).

    Je n'ai certes, jamais utiliser cette classe, mais le chargement d'un tel fichier semble se faire d'un autre manière:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    // Read properties file.
    Properties properties = new Properties();
    try {
        properties.load(new FileInputStream("filename.properties"));
    } catch (IOException e) {
    }
     
    // Write properties file.
    try {
        properties.store(new FileOutputStream("filename.properties"), null);
    } catch (IOException e) {
    }

    source

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  3. #3
    Modérateur

    Citation Envoyé par kolodz Voir le message
    Il me semble que les fichier .properties sont associé en générale à la classe Properties (cf javadoc).
    Ce n'est pas vraiment la question. Quant à l'exemple que tu donnes, un FileInputStream ne peut pas accéder aux ressources situées dans le classpath. (Entre autres, parce qu'elles pourraient y être encapsulées dans un .jar, donc pas sous forme de fichier servi par le système de fichiers.)

    Citation Envoyé par kolodz
    Je n'arrive pas à localiser le fichier de properties à partir de ma classe java: quand je met par exemple

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    ClassLoader.class.getResourceAsStream ("test.properties");


    ça me retourne un NULL
    pareil quad j'utilise

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    Test.class.getResourceAsStream("test.properties");

    Je crois que c'est plutôt le second, mais en fait c'est :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    Test.class.getResourceAsStream("/test.properties");


    Avec un / au début pour indiquer que la ressource n'est pas dans le même package que la classe Test.

    Ou bien :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    Test.class.getClassLoader().getResourceAsStream("test.properties");


    Le ClassLoader, lui, cherche directement depuis le package racine, et ne tolère pas qu'on mette un / au début d'un nom de ressource.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Modérateur

    En effet, c'est bien la première solution que tu donne.
    cf javadoc :http://download.oracle.com/javase/6/docs/api/java/lang/Class.html#getResourceAsStream(java.lang.String)
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  5. #5
    Membre actif
    Citation Envoyé par kolodz Voir le message

    Il me semble que les fichier .properties sont associé en générale à la classe
    Come le dis thelvin, ce n'est pas ça ma question , merci quand meme.
    Moi je me posais la question sur comment specifier le chemin vers le fichier de properties quand il n'est pas au meme niveau que la calsse java.

    thelvin, c'est la 2eme methode qui marche.
    Merci

  6. #6
    Modérateur

    Les deux marchent, elles utilisent simplement deux points de vue différents -_-°.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

###raw>template_hook.ano_emploi###