Lire un fichier de propriétés en Java

Publié le 29 Mars 2010

Le chargement d'un fichier .properties contenant des propriétés du type:

clé=valeur

s'effectue très simplement en Java au moyen de la classe java.util.Properties.

Il suffit en effet d'appeler la méthode load de l'objet Properties pour charger toutes les propriété du fichier.

Voilà le code pour charger un fichier de propriété:

package com.over-blog.patatos.example;

import java.util.Properties;
import java.io.IOException;
import java.io.FileNotFoundException;
import java.io.FileInputStream;

public class PropertyLoader{

   /**
    * Charge la liste des propriétés contenu dans le fichier spécifié
    *
    * @param filename le fichier contenant les propriétés
    * @return un objet Properties contenant les propriétés du fichier
    */

   public static Properties load(String filename) throws IOException, FileNotFoundException{
      Properties properties = new Properties();

      FileInputStream input = new FileInputStream(filename);
      try{

         properties.load(input);
         return properties;

      }

              finally{

         input.close();

      }

   }

   public static void main(String[] args){
      try{
         // chargement des propriétés
         Properties prop = PropertyLoader.load("monFichier.properties");

         // Affichage des propriétés
         // Récupère la propriété ma.cle
         // Si la propriété n'existe pas, retourne la valeur par défaut "vide"
        
System.out.println("ma.cle: "+ prop.getProperty("ma.cle", "vide"));
      }
      catch(Exception e){
         e.printStackTrace();
      }
   }
}

Rédigé par Bliz

Publié dans #Java

Repost 0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article

m4x 26/02/2015 10:11

Ce code ne marche jamais erreur lors du chargement du fichier de properties.

Cri 13/11/2012 10:40


Cette fonction me permettrait elle de lire les propriétés d'un fichier Power Point ? Et plus en détail la propriété : nombre total  de diapositives ? 

Bliz 14/11/2012 11:15



Non. Ceci permet de lire des fichiers texte dont le format est clé=valeur, ce qui n'est pas le cas des fichiers PowerPoint. S'il s'agit de fichiers .pptx, ça doit être du xml et dans ce cas là il
faudrait plutôt envisager d'utiliser une lib telle que docx4j : http://www.docx4java.org/trac/docx4j.



adiGuba 17/08/2010 11:33



Il y a quand même un gros problème sur la méthode load() : le fichier n'est pas fermé et les ressources liées ne sont donc pas libérées...


Le code devrait plutôt ressembler à ceci :


public static Properties load(String filename) throws IOException {
    InputStream input = new FileInputStream(filename);
    try {
        Properties properties = new Properties();
        properties.load(input);
        return properties;
    } finally {
        input.close();
    }
}


 


 


Plus d'info : http://java.developpez.com/faq/java/?page=langage_fichiers#libererRessources



Bliz 18/08/2010 12:42



C'est vrai je suis allé un peu vite sur ce coup là!


Merci pour l'info, j'ai corrigé directement dans l'article.