116 votes

Chargement d’un fichier de propriétés de package Java

J’ai besoin de lire un fichier de propriétés qui est enterré dans ma structure de paquet en `` .

J’ai tout essayé et je ne peux pas le comprendre.

En fin de compte, mon code s’exécutera dans un conteneur de servlet, mais je ne veux pas compter sur le conteneur pour quoi que ce soit. J’écris des scénarios de test JUnit et elle doit fonctionner dans les deux.

238voto

Joachim Sauer Points 133411

Lors du chargement des Propriétés d'une Classe dans le package com.al.common.email.templates vous pouvez utiliser

Properties prop = new Properties();
InputStream in = getClass().getResourceAsStream("foo.properties");
prop.load(in);
in.close();

(Ajouter tout le nécessaire à la gestion des exceptions).

Si votre classe n'est pas dans ce package, vous devez acquérir l'InputStream un peu différemment:

InputStream in = 
 getClass().getResourceAsStream("/com/al/common/email/templates/foo.properties");

Les chemins relatifs (ceux sans '/') getResource()/getResourceAsStream() signifie que la ressource sera recherché relatif au répertoire qui représente le package de la classe.

À l'aide de java.lang.String.class.getResource("foo.txt") rechercher la (inexistante) fichier /java/lang/String/foo.txt sur le chemin de la classe.

À l'aide d'un chemin d'accès absolu (celui qui commence par"/") signifie que le paquet est ignoré.

51voto

cobra libre Points 495

Pour ajouter à la réponse de Joachim Sauer, si vous avez besoin de faire cela dans un contexte statique, vous pouvez faire quelque chose comme ce qui suit :

(Gestion des exceptions qui ont été omises, comme avant).

16voto

Kuldeep Sharma Points 11

Lors du chargement du fichier de propriétés d'une Classe TestLoadPropertyFile.java dans le forfait général.propriétés

Cas 1: Si le chargement du fichier de propriétés à l'aide du chargeur de classe comme

InputStream inputStream = TestLoadProperties.class.getClassLoader()
                          .getResourceAsStream("A.config");
properties.load(inputStream);

Dans ce cas, la Propriété de fichier doit être à la racine du répertoire/src pour le succès de chargement

Cas 2: Si le chargement du fichier de propriété sans l'aide du chargeur de classe comme

InputStream inputStream = getClass().getResourceAsStream("A.config");
properties.load(inputStream);

Dans ce cas, le fichier de propriété doit être dans le même répertoire où la classe TestLoadPropertyFile.class est pour le succès de chargement.

12voto

user897493 Points 101
public class Test{  
  static {
    loadProperties();
}
   static Properties prop;
   private static void loadProperties() {
    prop = new Properties();
    InputStream in = Test.class
            .getResourceAsStream("test.properties");
    try {
        prop.load(in);
        in.close();
    } catch (IOException e) {
        e.printStackTrace();
    }

}

10voto

Vicky Points 2492
<pre><code></code><p><a href="http://www.technicalkeeda.com/java/how-to-read-load-property-file-in-java" rel="nofollow">Exemple complet</a></p></pre>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X