Maison  >  Article  >  Java  >  Explication détaillée de la façon dont les programmes Java lisent les fichiers de configuration des propriétés

Explication détaillée de la façon dont les programmes Java lisent les fichiers de configuration des propriétés

高洛峰
高洛峰original
2017-01-12 10:32:351108parcourir

Lorsque nous écrivons habituellement des programmes, certains paramètres changent fréquemment, et ce changement n'est pas quelque chose que nous prévoyons. Par exemple, nous avons développé un module pour exploiter la base de données. Au cours du développement, nous nous connectons à la base de données locale, de sorte que l'adresse IP, le nom de la base de données, le nom de la table, l'hôte de la base de données et d'autres informations sont locaux pour nous pour rendre ce module d'exploitation des données universel. , alors Les informations ci-dessus ne peuvent pas être écrites dans le programme. Habituellement, notre approche consiste à utiliser des fichiers de configuration pour le résoudre.
Chaque langue possède ses propres types de fichiers de configuration pris en charge. Par exemple, Python prend en charge les fichiers .ini. Parce qu'il dispose d'une classe ConfigParser interne pour prendre en charge la lecture et l'écriture de fichiers .ini, les programmeurs peuvent utiliser librement les fichiers .ini selon les méthodes fournies par cette classe. En Java, Java prend en charge la lecture et l'écriture de fichiers .properties. La classe java.util.Properties intégrée au JDK nous permet d'utiliser facilement les fichiers .properties.

1. Format de fichier .properties

# 以下为服务器、数据库信息
dbPort = localhost
databaseName = mydb
dbUserName = root
dbPassword = root
# 以下为数据库表信息
dbTable = mytable
# 以下为服务器信息
ip = 192.168.0.9

Dans le fichier ci-dessus, nous supposons que le nom du fichier est : fichier test.properties. La ligne commençant par # est une information d'annotation ; celle à gauche du signe égal "=" est appelée clé ; celle à droite du signe égal "=" est appelée valeur. (En fait, c'est ce que nous appelons souvent des paires clé-valeur) key devrait être une variable dans notre programme. La valeur est configurée en fonction de la situation réelle.

2. Classe Properties dans JDK

La classe Properties existe dans Java.util Cette classe hérite de Hashtable, qui fournit plusieurs méthodes principales :
1. getProperty(String key), recherche dans cette liste de propriétés une propriété utilisant la clé spécifiée. Autrement dit, grâce au paramètre clé, la valeur correspondant à la clé est obtenue.
2. load(InputStream inStream), lit une liste de propriétés (paires de clés et d'éléments) à partir du flux d'entrée. Obtenez toutes les paires clé-valeur dans le fichier spécifié (tel que le fichier test.properties ci-dessus) en chargeant le fichier. Pour la recherche par getProperty (clé de chaîne).
3. setProperty (String key, String value), appelez la méthode Hashtable put. Il définit les paires clé-valeur en appelant la méthode put de la classe de base.
4. store(OutputStream out,String comments), écrit la liste des propriétés (paires clé et élément) de cette table Propriétés dans le flux de sortie dans un format adapté au chargement dans la table Propriétés à l'aide de la méthode de chargement. Contrairement à la méthode de chargement, cette méthode écrit des paires clé-valeur dans le fichier spécifié.
5. clear(), efface toutes les paires clé-valeur chargées. Cette méthode est fournie dans la classe de base.
Avec les méthodes ci-dessus, nous pouvons exploiter le fichier .properties !

3. Exemple de fichier de propriétés de lecture Java
Il existe un fichier de propriétés box.properties avec le contenu suivant :

Color=Red
Name=Box
Length=18
Width=7
Heigth=8

Obtenir Pour les valeurs d'attribut, vous pouvez utiliser les codes suivants :

InputStream in = null;
Properties p = new Properties();
try {
  in = new BufferedInputStream(new FileInputStream("box.properties"));
  p.load(in);
} catch (FileNotFoundException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
} catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
}
Enumeration<Object> keys = p.keys();
while (keys.hasMoreElements()) {
  String key = (String) keys.nextElement();
  System.out.println(key + ":" + p.getProperty(key));
}

ou :

InputStream in;
ResourceBundle rb = null;
try {
  in = new BufferedInputStream(new FileInputStream("box.properties"));
  rb = new PropertyResourceBundle(in);
} catch (FileNotFoundException e1) {
  // TODO Auto-generated catch block
  e1.printStackTrace();
} catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
}
if (rb != null) {
  Enumeration<String> keys = rb.getKeys();
  while (keys.hasMoreElements()) {
    String key = (String) keys.nextElement();
    System.out.println(key + ":" + rb.getString(key));
  }
}

Plus de détails Veuillez prêter attention au site Web PHP chinois pour les articles connexes sur la méthode de lecture du fichier de configuration des propriétés par le programme Java !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn