Lire un fichier properties avec Jython

La plupart des scripts nécessitent de définir certaines variables et de les adapter à environnement d’exécution. Afin de centraliser l’ensemble des variables personnalisables, les fichiers propertiers s’avère très utiles. Un fichier properties contient des données sous forme de clé = valeur.

Parmi les points fort de Jython, sa possibilité de lire les fichier properties via la classe Properties du package java.util. La déclaration d’un fichier properties peut se faire à l’aide de :

properties = Properties()

Pour lire les données on aura besoin de flux d’entrée, et puisque Jython porte son J depuis JAVA, il est possible d’utiliser la classe FileInputStream de package java.io :

fileInputStream = FileInputStream(propertiesFileName)

La classe properties dispose d’une méthode permettant de charger les données (clé, valeur) à partir d’un flux d’entrée :

properties.load(fileInputStream)

NB :
Penser à la gestion des exceptions dans le cas où le fichier n’existe pas.

Pour parcourir les entrés, il faut faire appel à la méthode entrySet qui permet de retourner une set des entrées.

Voici un petit code permettant de charger et lire un fichier properties :

#import des packages
import java.util as util
import java.io as io
import sys

# Méthode permettant de charger et
# construire une map (clé, valeur)
# @param  propertiesFileName le chemin
# du fichier properties
def loadProperties(propertiesFileName):
    properties = util.Properties()
    try :
         fileInputStream = io.FileInputStream(propertiesFileName)
         properties.load(fileInputStream)
         fileInputStream.close()
         result= {}
         for entry in properties.entrySet():
             result[entry.key] = entry.value
             return result
    except IOError:
         print ‘File not found’
         sys.exit(0)

un exemple d’appel à partir de fonction main() peut être comme suit :

def main ():
        properties = loadProperties(‘configFile.properties’)
        print properties[‘factory.name’]

A propos de l'auteur

Faut il vraiment porter des lunettes, pour travailler la nuit, sur un terminal vert sur noire, pour être Geek pour devenir root ?