Il existe une classe Properties (Java.util.Properties) relativement importante en Java, qui est principalement utilisée pour lire le fichier de configuration de Java. Chaque langage a ses propres fichiers de configuration pris en charge et de nombreux <.> les variables sont fréquemment modifiées. Ceci est également fait pour la commodité des utilisateurs, permettant aux utilisateurs de modifier les paramètres des variables associées sans le programme lui-même
Classe de propriétés dans l'opération Java <.> Si vous apprenez des connaissances sans les utiliser, cela ne sert à rien. Vous devrez tout réapprendre lorsque vous les utiliserez réellement. Récemment, j'ai examiné le code source de plusieurs simulateurs open source, qui impliquaient de nombreuses
référencessur la classe Properties. Comme Java n'a pas été utilisé depuis longtemps, la plupart de ces simulateurs sont écrits en Java. , ainsi que quelques langages de scriptPython,Perl et autres, je dois les reprendre en dernier recours.
1. Classe Propriétés Java Il existe une classe Propriétés plus importante (Java.util.Properties) en Java, qui est principalement utilisée pour la lecture En prenant le fichier de configuration Java, chaque langage a son propre fichier de configuration pris en charge. De nombreuses variables du fichier de configuration sont fréquemment modifiées. Ceci est également pour la commodité des utilisateurs, permettant aux utilisateurs de modifier les paramètres des variables associées sans quitter le programme lui-même. Le fichier de configuration pris en charge par Python est le fichier .ini. De même, il possède également sa propre classe ConfigParse pour lire le fichier de configuration, ce qui permet aux programmeurs ou aux utilisateurs de modifier le fichier de configuration .ini via cette méthode de classe. En Java, son fichier de configuration est souvent un fichier .properties au format d'un fichier texte. Le contenu du fichier est au format "key=value". Le texte
annotationpeut être annoté avec. "#". La Classe Propriétés hérite de la table
Hashqui fournit Il existe plusieurs méthodes principales :
1. getProperty (String
key), recherche dans cette liste property une propriété à l'aide de la clé spécifiée. Autrement dit, grâce au paramètre key, la valeur correspondant à key 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 un fichier spécifié (par exemple le fichier test.properties ci-dessus) en le chargeant. Pour getProperty (clé de chaîne) à rechercher. 3. set
Property (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 une liste de propriétés (paires de clés et d'éléments) 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.2. Java lit les fichiers de propriétés
Il existe de nombreuses façons de lire les fichiers de propriétés en Java, mais la plus couramment utilisée. se fait via la méthode java .lang.Class
getResourceAsStream(String name) à implémenter, comme suit : ou The Les éléments suivants sont également couramment utilisés :
InputStream in = getClass().getResourceAsStream("资源Name");作为我们写程序的,用此一种足够。
3. Exemples connexes
InputStream in = new BufferedInputStream(new FileInputStream(filepath));
Voici plusieurs exemples pour approfondir la compréhension de la classe Properties. et la mémoire. Nous savons que la machine virtuelle Java (JVM) possède son propre fichier de configuration système (system.properties), que nous pouvons obtenir via la méthode suivante.
1. Obtenez les propriétés système de la JVM
Résultat :
import java.util.Properties; public class ReadJVM { public static void main(String[] args) { Properties pps = System.getProperties(); pps.list(System.out); } }
3. Un exemple plus complet
name=JJ Weight=4444 Height=3333 public class getProperties { public static void main(String[] args) throws FileNotFoundException, IOException { Properties pps = new Properties(); pps.load(new FileInputStream("Test.properties")); Enumeration enum1 = pps.propertyNames();//得到配置文件的名字 while(enum1.hasMoreElements()) { String strKey = (String) enum1.nextElement(); String strValue = pps.getProperty(strKey); System.out.println(strKey + "=" + strValue); } } }
Lire toutes les informations sur les propriétés
Écrire de nouvelles informations sur la propriété//关于Properties类常用的操作 public class TestProperties { //根据Key读取Value public static String GetValueByKey(String filePath, String key) { Properties pps = new Properties(); try { InputStream in = new BufferedInputStream (new FileInputStream(filePath)); pps.load(in); String value = pps.getProperty(key); System.out.println(key + " = " + value); return value; }catch (IOException e) { e.printStackTrace(); return null; } } //读取Properties的全部信息 public static void GetAllProperties(String filePath) throws IOException { Properties pps = new Properties(); InputStream in = new BufferedInputStream(new FileInputStream(filePath)); pps.load(in); Enumeration en = pps.propertyNames(); //得到配置文件的名字 while(en.hasMoreElements()) { String strKey = (String) en.nextElement(); String strValue = pps.getProperty(strKey); System.out.println(strKey + "=" + strValue); } } //写入Properties信息 public static void WriteProperties (String filePath, String pKey, String pValue) throws IOException { Properties pps = new Properties(); InputStream in = new FileInputStream(filePath); //从输入流中读取属性列表(键和元素对) pps.load(in); //调用 Hashtable 的方法 put。使用 getProperty 方法提供并行性。 //强制要求为属性的键和值使用字符串。返回值是 Hashtable 调用 put 的结果。 OutputStream out = new FileOutputStream(filePath); pps.setProperty(pKey, pValue); //以适合使用 load 方法加载到 Properties 表中的格式, //将此 Properties 表中的属性列表(键和元素对)写入输出流 pps.store(out, "Update " + pKey + " name"); } public static void main(String [] args) throws IOException{ //String value = GetValueByKey("Test.properties", "name"); //System.out.println(value); //GetAllProperties("Test.properties"); WriteProperties("Test.properties","long", "212"); } }
结果:
Test.properties中文件的数据为:
#Update long name #Sun Feb 23 18:17:16 CST 2016 name=JJ Weight=4444 long=212 Height=3333
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!