begin process at 2010 03 21 02:16:45
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > ECRITURE / LECTURE FACILE DANS UN FICHIER DE CONFIGURATION

ECRITURE / LECTURE FACILE DANS UN FICHIER DE CONFIGURATION


 Information sur la source

Note :
8,75 / 10 - par 4 personnes
8,75 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Niveau :Débutant Date de création :08/06/2004 Vu :14 901

Auteur : NeoToto

Ecrire un message privé
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

Ce code très simple à déjà été présenté, mais je n'ai pas trouvé le code en integralité. (qui permette également de mettre a jour).

Donc.... Ce code permet de lire et d'ecrire des options dans un fichier de config en Java à l'aide de la classe properties. Vous pouvez même y mettre des commentaires en utilisant le # !

Exemple d'utilisation :

Configuration truc = new Configuration();
        try {
         truc.setConfig("test","max_connection","1000" );
         truc.setConfig("test","max_connerie","0" );
        
         System.out.println (truc.getConfig("test","max_connection"));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();}

Source

  • /**
  • * Classe : Configuration
  • *
  • * Description :
  • * La classe Configuration va obtenir et mettre à jour les infos de
  • * configuration à partir des fichiers de configuration
  • * stockés sous [rep_courant]/config
  • * Le fichier doit existé ou une exception sera levée.
  • *
  • * date : 8/05/2004
  • * @author : PeeX Team
  • * @version : 1.0
  • *
  • */
  • // Les import
  • import java.io.FileInputStream;
  • import java.io.FileOutputStream;
  • import java.util.Properties;
  • import java.lang.Exception;
  • public class Configuration
  • {
  • /**
  • * Methode : getConfig
  • *
  • * Description :
  • * La méthode getConfig va retourner l'information de configuration
  • * désirée à partir d'un fichier de configuration
  • *
  • * date : 8/05/2004
  • * @param : String fichier : Le nom du fichier de configuration
  • * @param : String key : La clé dont on veut obtenir la valeur
  • *
  • * @return : String représentant la valeur de l'info
  • *
  • */
  • public String getConfig(String fichier, String key) throws Exception
  • {
  • //On construit l'adresse du fichier
  • String leFichier = System.getProperty("user.dir") + "/config/" + fichier;
  • // On fait pointer notre Properties sur ke fichier
  • FileInputStream fis = new FileInputStream(leFichier);
  • Properties config = new Properties();
  • config.load(fis);
  • String tmp = config.getProperty(key);
  • fis.close();
  • // C'est important de mettre à null, le garbage collector
  • // passe plus vite !
  • leFichier = null;
  • fis = null;
  • config = null;
  • if (tmp == null)
  • {
  • // On leve une exeption
  • throw new Exception("La valeur correspondant à '" + key + "' n'existe pas dans le fichier '" + fichier+"'");
  • }
  • return tmp;
  • }
  • /**
  • * Methode : setConfig
  • *
  • * Description :
  • * La méthode setConfig va mettre à jour/ inserer l'information de configuration
  • * désirée à partir dans un fichier de configuration
  • *
  • * date : 8/05/2004
  • * @param : String fichier : Le nom du fichier de configuration
  • * @param : String key : La clé dont on veut obtenir la valeur
  • * @param : String valeur : La valeur associée à la clé
  • *
  • * @return : String représentant la valeur de l'info
  • *
  • */
  • public void setConfig(String fichier, String key, String valeur) throws Exception
  • {
  • // La petite feinte : Il faur recharger entièrement le fichier
  • // et le réecrire.
  • //On construit l'adresse du fichier
  • String leFichier = System.getProperty("user.dir") + "/config/" + fichier;
  • // On fait pointer notre Properties sur le fichier
  • Properties config = new Properties();
  • FileInputStream fis = new FileInputStream(leFichier);
  • config.load (fis);
  • fis.close();
  • FileOutputStream fos = new FileOutputStream(leFichier);
  • config.setProperty(key,valeur);
  • config.store (fos,"Dernière mise a jour :");
  • // C'est important de mettre à null, le garbage collector
  • // passe plus vite !
  • fos.close();
  • leFichier = null;
  • fos = null;
  • fis = null;
  • config = null;
  • }
  • }
/**
* Classe      : Configuration
* 
* Description :
*	La classe Configuration va obtenir et mettre à jour les infos de
*	configuration à partir des fichiers de configuration
*	stockés sous [rep_courant]/config 
*	Le fichier doit existé ou une exception sera levée.
*
* date        : 8/05/2004
* @author     : PeeX Team 
* @version    : 1.0
*
*/

// Les import
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Properties;
import java.lang.Exception;

public class Configuration
{
	/**
	* Methode     : getConfig
	* 
	* Description :
	* 	La méthode getConfig va retourner l'information de configuration
	* 	désirée à partir d'un fichier de configuration
	*
	* date        : 8/05/2004
	* @param      : String fichier : Le nom du fichier de configuration
	* @param      : String key     : La clé dont on veut obtenir la valeur
	* 
	* @return     : String représentant la valeur de l'info
	*
	*/	
	
    public String getConfig(String fichier, String key) throws Exception
    {
    	//On construit l'adresse du fichier
        String leFichier = System.getProperty("user.dir") + "/config/" + fichier;

        // On fait pointer notre Properties sur ke fichier
    	FileInputStream fis = new FileInputStream(leFichier);
        Properties config = new Properties();
        config.load(fis);
        
        String tmp = config.getProperty(key);
        fis.close();
        
        // C'est important de mettre à null, le garbage collector
        // passe plus vite !
        leFichier = null;
        fis = null;
        config = null;
        
        if (tmp == null)
        {
        	// On leve une exeption
        	throw new Exception("La valeur correspondant à '" + key + "' n'existe pas dans le fichier '" + fichier+"'");
        }
        return tmp;
        
    }
        
	/**
	* Methode     : setConfig
	* 
	* Description :
	* 	La méthode setConfig va mettre à jour/ inserer l'information de configuration
	* 	désirée à partir dans un fichier de configuration
	*
	* date        : 8/05/2004
	* @param      : String fichier : Le nom du fichier de configuration
	* @param      : String key     : La clé dont on veut obtenir la valeur
	* @param      : String valeur  : La valeur associée à la clé
	* 
	* @return     : String représentant la valeur de l'info
	*
	*/	
    public void setConfig(String fichier, String key, String valeur) throws Exception
    {
    	// La petite feinte : Il faur recharger entièrement le fichier 
    	// et le réecrire.
    	
    	//On construit l'adresse du fichier
        String leFichier = System.getProperty("user.dir") + "/config/" + fichier;

        // On fait pointer notre Properties sur le fichier
       	Properties config = new Properties();
        FileInputStream fis = new FileInputStream(leFichier);
        config.load (fis);
        fis.close();
        FileOutputStream fos = new FileOutputStream(leFichier);

        config.setProperty(key,valeur);
        
        config.store (fos,"Dernière mise a jour :");
        // C'est important de mettre à null, le garbage collector
        // passe plus vite !
        fos.close();
        leFichier = null;
        fos = null;
        fis = null;
        config = null;
    }
}

 Conclusion

Voilà, c'est bête comme chou ! En attendant vos réactions, bon codage !!!!

La PeeX Team !!!


 Sources de la même categorie

LIRE LES FICHIERS .WAV par Julien39
Source avec Zip Source avec une capture TRADUCTEUR FRANÇAIS --> NERLANDAIS V3 par edouard333
Source avec Zip IA POUR DISCUTER par edouard333
Source avec Zip Source avec une capture JSUBTITLE1.0 par darrylsite
Source avec Zip COMPILATEUR PASCAL par youma85

Commentaires et avis

Commentaire de harbaingan le 08/06/2004 19:06:09

Super la PeeX Team !!!!

Je cherchais un code source dans le genre depuis des mois, et faut avouer que les autres sources etaient pas aussi bandantes.

Chapeau : 10/10

Commentaire de adx77 le 13/01/2005 11:04:50

Super, Le truc simple, bête, mais super util et qui fait gagner du temps ... Merci

Commentaire de TFlorian le 05/07/2005 09:16:00

Supper ton code !
j'ai gagné un temps précieux ! merci !!

toutefois il y a un truc .. lorsque ton fichier n'existe pas, ca plante .. c'est normal .. tu commance à lire avant d'écrire ..

pour eviter la lecture puis l'ecriture tu a la methode append, celle ci ajoute directement ce que tu veux a la fin de ton fichier de plus si le fichier n'existe pas il est crée
elle a aussi l'aventage de ne pas charger le fichier en mémoire donc c'est bien si tu fait de log qui font 200 Mo !!

pour utiliser la methode append tu modifi lle setConfig comme suite :

    public void setConfig(String fichier, String key, String valeur) throws Exception
    {
        // La petite feinte : Il faur recharger entièrement le fichier
        // et le réecrire.
        
        //On construit l'adresse du fichier
        String leFichier = System.getProperty("user.dir") + "/config/" + fichier;
  
        // On fait pointer notre Properties sur le fichier
           Properties config = new Properties();

        // on n'a plus besoin de lire le fichier .. donc plus de risque de bug fichier inexistant , en plus on ne charge pas en memoire le fichier donc gain de temps de d'espace memoire

        //FileInputStream fis = new FileInputStream(leFichier);
        //config.load (fis);
        //fis.close();

        //FileOutputStream fos = new FileOutputStream(leFichier);    
        // On ajoute true pour dire d'utilisé la methode append
        FileOutputStream fos = new FileOutputStream(leFichier,true);
  
        config.setProperty(key,valeur);
        
        config.store (fos,"Dernière mise a jour :");
        // C'est important de mettre à null, le garbage collector
        // passe plus vite !
        fos.close();
        leFichier = null;
        fos = null;
        //fis = null; // ne serre plus !!
        config = null;
    }


Voila !!

et bonne prog a tous ;-)
TFlorian

Commentaire de robo45 le 13/07/2006 16:41:44

Merci beaucoup pour ce code qui devrais me permmettre de gagner beaucoup de temps.
Bonne continuation :)

Commentaire de ibhow le 12/09/2008 12:17:07

ça fonctionne bien ce code mais j'ai une question car il ne correspond pas tout à fait à mon cas.

J'ai un fichier de configuration qui contient des clés du type KEY=VALUE mais en plus j'ai des commentaires. Le problème c'est qu'avec le setProperty je perds tous les commentaires et l'ordre des clés du fichier d'origine. Il y a-t-il une solution pour venir juste mettre à jour la valeur de la clé  (sans perdre l'ordre des clé et les commentaires)

Sinon ma solution serait de chercher dans le fichier la chaine "KEY=VALUE" et de la remplacer mais bon... setProperty semble prévu pour.

Commentaire de Grouss le 03/06/2009 12:11:33

public void setConfig(String fichier, String key, String valeur)
    {
        String fullPath = null;
        FileOutputStream fos = null;
        Properties config = null;
        FileInputStream fis = null;

        // La petite feinte : Il faur recharger entièrement le fichier
        // et le réecrire.
        
        //On construit l'adresse du fichier
        fullPath = System.getProperty("user.dir") + "/config/" + fichier;
  
        try
        {
            config = new Properties();
            if (fullPath != null)
            {
                File fileRes = new File(fullPath);
                if (fileRes.isFile())
                {
                    fis = new FileInputStream(fullPath);
                    config.load(fis);
                    fis.close();
                }
            }
            if (fis == null)
            {
                fos = new FileOutputStream(fullPath, true);
            }
            else
            {
                fos = new FileOutputStream(fullPath);
            }

            config.setProperty(key, valeur);
            config.store(fos, "Dernière mise a jour :");
            fos.close();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        finally
        {
            fichier = null;
            fos = null;
            fis = null;
            config = null;
        }
    }

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,437 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales