Rechercher : dans
Par :

[java] générer un fichier .properties

Dernière réponse le 14 fév 2007 à 14:33:46 kifouillou, le 24 jan 2007 à 15:32:25 
 Signaler ce message aux modérateurs

Bonjour,

je voudrais créer un fichier .properties.
Connaissez-vous des cours ou tutoriels ou exemple dessus? Car je n'en ai encore jamais réalisé.
Merci d'avance.

Configuration: Windows XP
Internet Explorer 7.0

Meilleures réponses pour « [java] générer un fichier .properties » dans :
Créer un fichier PDF VoirUn fichier PDF (abréviation de Portable Document Format) est un document pouvant contenir texte, dessins, images noir et blanc, en couleur ou en 3D, photos et éventuellement des fonctions de traitement. Le format PDF est un format ouvert,...
Java - Caractéristiques du langage VoirFichier source, compilation et machine virtuelle Le fichier source d'un programme écrit en Java est un simple fichier texte dont l'extension est par convention .java. Ce fichier source doit être un fichier texte non formatté, c'est-à-dire un...

1

HackTrack, le 24 jan 2007 à 16:21:28
  • +8

Salut Kifouillou!

Tu trouveras ci-dessous une petite démo qui te montre comment créer un fichier Properties, comment y insérer des valeurs, comment stocker ce fichier sur disque, comment charger un fichier Properties depuis le disque et comment afficher le contenu.


import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;

/*
 * Created on Jan 24, 2007
 *
 */

public class PropertiesDemo {

	public PropertiesDemo() {
		super();
	}

	
	/**
	 * Cette méthode stocke le fichier Properties à l'emplacement spécifié
	 * 
	 * @param props Le fichier à stocker
	 * @param fileLocation L'emplacement où le fichier doit être stocké
	 * @param comments Commentaires à insérer en tête du fichier
	 * @throws FileNotFoundException
	 * @throws IOException si une erreur est survenue lors de l'écriture du fichier
	 */
	public void saveProperties(Properties props, String fileLocation, String comments) throws FileNotFoundException,
			IOException {
		OutputStream out = new FileOutputStream(fileLocation);
		props.store(out, comments);
		out.flush();
		out.close();
	}

	
	/**
	 * Cette méthode lit un fichier Properties à l'emplacement spécifié
	 * 
	 * @param propertiesFileLocation L'emplacemnt du fichier
	 * @return Le fichier Properties chargé
	 * @throws FileNotFoundException si le fichier n'a pas été trouvé
	 * @throws IOException si une erreur est survenue durant la lecture
	 */
	public Properties loadProperties(String propertiesFileLocation) throws FileNotFoundException, IOException {
		Properties props = new Properties();
		props.load(new FileInputStream(propertiesFileLocation));
		return props;
	}

	
	/**
	 * 
	 * Cette méthode affiche cahque paire [clé,valuer] d'un fichier Properties
	 * 
	 * @param props Le fichier à afficher
	 */
	public void displayProperties(Properties props) {
		Iterator it = props.keySet().iterator();
		while (it.hasNext()) {
			String propertyName = (String) it.next();
			String propertyValue = props.getProperty(propertyName);
			System.out.println(propertyName + "=" + propertyValue);
		}
	}

	/**
	 * Cette méthode permet de démarrer la démo.
	 * 
	 * On y crée un fichier Properties que l'on remplitavec des paires [clé,valeur]
	 * puis on le stocke sur le disque. Ensuite on le re depuis le disaue et, enfin,
	 * son contenu est affiché.
	 * 
	 * @param args non utilsé
	 */
	public static void main(String[] args) {
		PropertiesDemo demo = new PropertiesDemo();

		//Emplacement où sera stocké le fichier
		String propertiesFileLocation = "d:/myProperties.properties";
		
		//On instancie un nouvel objet Properties
		Properties myProps = new Properties();
		//On y insère des paires [clé,valeur]
		myProps.setProperty("user.name","HackTrack");
		myProps.setProperty("os.name","Linux");
		myProps.setProperty("java.ide","Eclipse3.2");
		myProps.setProperty("java.applicationserver.name","JBoss AS");
		myProps.setProperty("java.applicationserver.version","4.0.5");
		myProps.setProperty("user.function","Developer");
		myProps.setProperty("user.age","You are too curious!");
		
		try {
			//On stocke le fichier sur le disque
			demo.saveProperties(myProps, propertiesFileLocation, "This is a demo on Properties by HackTrack");
			//On crée un nouvel objet Properties en lisant le fichier sur le disque
			Properties loadedProps = demo.loadProperties(propertiesFileLocation);
			//On affiche le contenu du fichier
			demo.displayProperties(loadedProps);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}


;-)
HackTrack

Répondre à HackTrack

2

kifouillou, le 24 jan 2007 à 17:20:08
  • +1

Yop,

j'ai donc fais un copier coller de la démodans un document text.
J'ai créé un fichier dont le nom est décrit dans la démo.
J'ai fait un petit F5 mais il n' y a rien qui se passe. Mon fichier properties est toujours vide. Ais-je fais une manip à l'envers?

Répondre à kifouillou

3

kij_82, le 24 jan 2007 à 17:24:27

Lol,

Le code donné correspond à une classe Java qui te permet de sauvergarder un objet Property dans un fichier de type properties.
Il te faut donc insèrer cette classe dans ton projet java, et l'utiliser pour pouvoir sauvegarder tes infos.
~ iclic @ gauch,iclic,  iclic @ droate, iclic, iclic
             et ya pas de bôg môsieu !    ~

Répondre à kij_82

4

kifouillou, le 24 jan 2007 à 17:36:36

Bon pour résumer,

j'ai créé une classe dans mon projet. Donc sa me fait un nomClasse.java.
Ensuite recopié le code donné dans cette classe. Je lance mon projet, sa l'exécute. Mais mon fichier est toujours vide. Faut-il que le code du fichier properties soit en raccord avec le projet en lui-meme?

Répondre à kifouillou

5

HackTrack, le 25 jan 2007 à 11:50:24

Salut!

Tu dois créer une classe qui s'appelle PropertiesDemo (en respectant la casse) dans ton projet.

Tu effectues un copier-coller du code ci-dessus.

Tu compiles ta classe.

Tu la testes.

;-)
HackTrack

Répondre à HackTrack

6

 kifouillou, le 14 fév 2007 à 14:33:46
  • +1

Salut Hack,

j'ai une classe qui me permet d'ouvrir, de lire et de fermer un fichier properties.

public class FichierPropertiesGenerique {

	private Properties prop;
	private FileInputStream in;
	private String fichierProperties;

	public String getFichierProperties() {
		return fichierProperties;
	}

	public void setFichierProperties(String fichierProperties) {
		this.fichierProperties = fichierProperties;
	}

	/**
	 * Cette méthode ouvre le fichier properties, si l'opération est réussie
	 * alors elle retourne vrai sinon elle retourne faux.
	 */
	public boolean ouvrirFichierProperties(String fichierProperties) {

		boolean ResultOK;
		prop = new Properties();

		try {
			in = new FileInputStream(fichierProperties);
			prop.load(in);
			ResultOK = true;

		} catch (Throwable e) {

			ResultOK = false;

		}

		return ResultOK;
	}

	/**
	 * cette méthode retourne la valeur qui correspond à la clé passée en paramètre
	 * Si la clé n'est pas trouvé la méthode renvoie une chaîne vide.
	 */
	public String lireValeur(String cle) {
		if (prop != null) {
			String Valeur = prop.getProperty(cle, "");
			return Valeur;
		} else {
			return "";
		}
	}

	public void fermerFichier() throws Throwable {

		in.close();

	}
}


et j'ai une autre classe qui appelle cette classe et normalement sa devrait me retourner la valeur d'un chemin qui se trouve dans mon fichier properties:
public class FichierPropertiesPromotelec {

	private Properties prop;
	private String monFichier;
	private String monRepertoire; 

	public  void init(){
			
			monRepertoire = prop.getProperty("repertoireEchange");
			monFichier = "C:\\Temp\\promo_act.properties";
			
}
					
	
	public String RecupererRepertoire() throws Throwable {

		FichierPropertiesGenerique fichier = new FichierPropertiesGenerique();
		fichier.ouvrirFichierProperties(getMonFichier());
		fichier.lireValeur(getMonRepertoire());
		fichier.fermerFichier();
		System.out.println(getMonRepertoire());
		return getMonRepertoire();

	}

	public String getMonFichier() {
		
		return monFichier;
	}

	public void setMonFichier(String monFichier) {
		
		this.monFichier = monFichier;
	}

	public String getMonRepertoire() {
		
		return monRepertoire;
	}

	public void setMonRepertoire(String monRepertoire) {
		
		this.monRepertoire = monRepertoire;
	}

}


Le problème c'est que prop n'est pas initialisé et je pense que c'est pour sa que j'ai une erreur du style :
java.lang.NullPointerException


Est-ce que quelqu'un aurait une idée pour pallier à mon problème?

Répondre à kifouillou
Collection CommentÇaMarche.net