« Aujourd'hui, nous explorons un autre sujet nouveau et intéressant : les propriétés. »
"En Java, il est d'usage de rendre les programmes flexibles et facilement personnalisables, c'est-à-dire facilement configurables."
"Par exemple, une fois par heure, votre programme copie les fichiers d'un certain répertoire, les compresse et vous les envoie par e-mail. Pour ce faire, le programme doit connaître le répertoire d'où les fichiers seront extraits et l'adresse e-mail. où elles doivent être envoyées. Ces données ne sont généralement pas stockées dans le code de l'application, mais dans des fichiers de propriétés distincts .
Les données de ce fichier sont stockées sous forme de paires clé-valeur, séparées par un signe égal.
data.properties file
directory = c:/text/downloads
email = zapp@codegym.cc
"A gauche du signe se trouve le nom (clé), à droite se trouve la valeur."
"Donc, c'est une sorte de représentation textuelle d'un HashMap?"
"En général, oui."
"Pour plus de commodité lors de l'utilisation de tels fichiers, Java possède une classe Properties spéciale. La classe Properties hérite de Hashtable<Object,Object>. Elle peut même être considérée comme une Hashtable qui peut se charger à partir d'un fichier."
"Voici ses méthodes :"
Méthode | Description |
---|---|
void load(Reader reader) |
Charge les propriétés du fichier représenté par un objet Reader |
void load(InputStream inStream) |
Charge les propriétés du fichier représenté par un objet InputStream |
void loadFromXML(InputStream in) |
Charger les propriétés à partir d'un fichier XML |
Object get(Object key) |
Renvoie la valeur de la clé spécifiée. Cette méthode est héritée de Hashtable |
String getProperty(String key) |
Renvoie une valeur de propriété (chaîne) par clé. |
String getProperty(String key, String defaultValue) |
Renvoie une valeur de propriété par clé ou defaultValue s'il n'y a pas une telle clé. |
Set<String> stringPropertyNames() |
Renvoie une liste de toutes les clés |
"En d'autres termes, vous n'avez en fait besoin d'effectuer que deux opérations : charger des données à partir d'un fichier dans un objet Properties , puis obtenir ces propriétés à l'aide de la méthode getProperty (). Eh bien, et n'oubliez pas que vous pouvez utiliser l' objet Properties comme une carte de hachage ."
"Voici un autre exemple :"
// The file that stores our project's properties
File file = new File("c:/data.properties");
// Create a Properties object and load data from the file into it.
Properties properties = new Properties();
properties.load(new FileReader(file));
// Get property values from the Properties object
String email = properties.getProperty("email");
String directory = properties.getProperty("directory");
// Get a numeric value from the Properties object
int maxFileSize = Integer.parseInt(properties.getProperty("max.size", "10000"));
"Ah. Nous créons donc un objet Properties, puis lui transmettons un fichier. À la méthode load. Et puis nous appelons getProperty. N'est-ce pas ?"
"Ouais."
"Et vous avez également dit qu'il pouvait être utilisé comme HashMap ? Qu'est-ce que vous vouliez dire ?"
"La classe Properties hérite de Hashtable, qui est identique à HashMap, mais toutes ses méthodes sont synchronisées. Vous pouvez simplement afficher toutes les valeurs du fichier de propriétés à l'écran comme ceci :"
// Get the file with the properties
File file = new File("c:/data.properties");
// Create a Properties object and load data from the file into it.
Properties properties = new Properties();
properties.load(new FileReader(file));
// Run through all the keys and display their values on the console
for (String key : properties.stringPropertyNames())
{
System.out.println(properties.get(key));
}
"Ah. Tout semble être tombé en place. Merci, Rishi. Je vais utiliser ce truc cool."
GO TO FULL VERSION