J'ai une liste de paires clé / valeur de valeurs de configuration que je souhaite stocker en tant que fichiers de propriétés Java, puis les charger et les parcourir.
Des questions:
- Dois-je stocker le fichier dans le même package que la classe qui les chargera, ou existe-t-il un emplacement spécifique où il devrait être placé?
- Le fichier doit-il se terminer par une extension spécifique ou est-il
.txt
correct? - Comment puis-je charger le fichier dans le code
- Et comment puis-je parcourir les valeurs à l'intérieur?
java
properties
Cliquez Upvote
la source
la source
null
. Voir Javadocproperties.load(PropertiesReader.class.getResourceAsStream("/properties.properties"));
cela,getResourceAsStream
contreFileInputStream
? avantages et inconvénients?Vous pouvez stocker le fichier où vous le souhaitez. Si vous souhaitez le conserver dans votre fichier jar, vous devrez l'utiliser
Class.getResourceAsStream()
ouClassLoader.getResourceAsStream()
y accéder. Si c'est sur le système de fichiers c'est un peu plus facile.Toute extension est correcte, bien que .properties soit plus courant dans mon expérience
Chargez le fichier en utilisant
Properties.load
, en passant dans unInputStream
ouStreamReader
si vous utilisez Java 6. (Si vous êtes utilisez Java 6, je serais probablement utiliser UTF-8 et auReader
lieu de la valeur par défaut ISO-8859-1 pour un flux. )Parcourez-le comme vous le feriez à travers une normale
Hashtable
(quiProperties
dérive de), par exemple en utilisantkeySet()
. Vous pouvez également utiliser l'énumération renvoyée parpropertyNames()
.la source
Si vous placez le fichier de propriétés dans le même package que la classe Foo, vous pouvez facilement le charger avec
Étant donné que Propriétés étend la table de hachage, vous pouvez parcourir les valeurs de la même manière que vous le feriez dans une table de hachage.
Si vous utilisez l'extension * .properties, vous pouvez obtenir le support de l'éditeur, par exemple Eclipse a un éditeur de fichier de propriétés.
la source
Il existe de nombreuses façons de créer et de lire des
properties
fichiers:.properties
extension mais vous pouvez choisir la vôtre.java.util
package =>Properties
,ListResourceBundle
,ResourceBundle
classes.Properties
ou lajava.lang.System
classe.ResourceBundle
classe:Properties
classe:la source
.properties
extension uniquement? quel est le problème avec l'extension ".txt"? veuillez m'aider.Cela charge le fichier de propriétés:
J'utilise pour mettre le fichier .properties dans un répertoire où j'ai tous les fichiers de configuration, je ne le mets pas avec la classe qui y accède, mais il n'y a pas de restrictions ici.
Pour le nom ... J'utilise .properties pour la verbosité, je ne pense pas que vous devriez le nommer .properties si vous ne voulez pas.
la source
Exemple:
la source
Les propriétés sont devenues un héritage. La classe Préférences est préférée aux Propriétés.
Contrairement aux propriétés qui sont des paires clé-valeur basées sur des chaînes, la
Preferences
classe a plusieurs méthodes utilisées pour obtenir et placer des données primitives dans le magasin de données Préférences. Nous ne pouvons utiliser que les types de données suivants:Pour charger le fichier de propriétés, vous pouvez fournir un chemin absolu ou utiliser
getResourceAsStream()
si le fichier de propriétés est présent dans votre chemin de classe.fichier xml:
Jetez un œil à cet article sur les internes du magasin de préférences
la source
En ordre:
la source
2. no extension is necessary
, Pouvez-vous s'il vous plaît me fournir toute référence pour cette déclaration s'il vous plaît. J'ai de la confusion là-dessus.Par défaut, Java l'ouvre dans le répertoire de travail de votre application (ce comportement dépend en fait du système d'exploitation utilisé). Pour charger un fichier, procédez comme suit:
En tant que tel, n'importe quelle extension de fichier peut être utilisée pour le fichier de propriétés. De plus, le fichier peut également être stocké n'importe où, tant que vous pouvez utiliser a
FileInputStream
.Sur une note connexe, si vous utilisez un cadre moderne, le cadre peut fournir des moyens supplémentaires d'ouvrir un fichier de propriétés. Par exemple, Spring fournit un
ClassPathResource
pour charger un fichier de propriétés à l'aide d'un nom de package à l'intérieur d'un fichier JAR.Quant à parcourir les propriétés, une fois les propriétés chargées, elles sont stockées dans l'
java.util.Properties
objet qui propose lapropertyNames()
méthode.la source
Lire un fichier de propriétés et charger son contenu dans
Properties
Ce qui suit est le moyen efficace d'itérer sur un
Properties
la source
En Java 8 pour obtenir toutes vos propriétés
la source
1) Il est bon d'avoir votre fichier de propriétés dans classpath mais vous pouvez le placer n'importe où dans le projet.
Voici comment charger le fichier de propriétés à partir du chemin de classe et lire toutes les propriétés.
2) Les fichiers de propriétés ont l'extension .properties
la source
Voici une autre façon d'itérer les propriétés:
la source
J'ai écrit sur ce cadre de propriété pour l'année dernière. Il fournira plusieurs façons de charger les propriétés et les aura également fortement tapées.
Jetez un œil à http://sourceforge.net/projects/jhpropertiestyp/
JHPropertiesTyped donnera au développeur des propriétés fortement typées. Facile à intégrer dans les projets existants. Géré par une grande série de types de propriétés. Donne la possibilité d'initialiser une ligne de propriétés via des implémentations d'E / S de propriété. Donne au développeur la possibilité de créer ses propres types de propriété et io de propriété. Une démo Web est également disponible, captures d'écran illustrées ci-dessus. Ayez également une implémentation standard pour un frontal Web pour gérer les propriétés, si vous choisissez de l'utiliser.
Une documentation complète, tutoriel, javadoc, faq etc est disponible sur la page web du projet.
la source
Voici la classe statique prête
Voici un exemple:
la source
Vous pouvez charger le fichier de propriétés de la manière suivante:
Et puis vous pouvez parcourir la carte en utilisant une expression lambda comme:
la source
à mon avis, d'autres moyens sont déconseillés lorsque nous pouvons le faire très simplement comme ci-dessous:
c'est tellement simple mais je pense que c'est la meilleure façon !! Prendre plaisir
la source