Les deux classes peuvent lire les paires clé-valeur stockées sous forme de clé/valeur dans le fichier de propriétés lorsque ResourceBundle lit la propriété. fichier L'opération est relativement simple.
Cette classe hérite de Hashtable et stocke les paires clé-valeur dans une collection. En fonction du flux d'entrée, les paires clé-valeur sont lues à partir du fichier de propriétés. Une fois la méthode load() appelée, elle est déconnectée du flux d'entrée et ne fermera pas automatiquement le flux d'entrée. Elle doit être fermée manuellement.
/** * 基于输入流读取属性文件:Properties继承了Hashtable,底层将key/value键值对存储在集合中, * 通过put方法可以向集合中添加键值对或者修改key对应的value * * @throws IOException */@SuppressWarnings("rawtypes") @Testpublic void test01() throws IOException { FileInputStream fis = new FileInputStream("Files/test01.properties"); Properties props = new Properties(); props.load(fis);// 将文件的全部内容读取到内存中,输入流到达结尾fis.close();// 加载完毕,就不再使用输入流,程序未主动关闭,需要手动关闭/*byte[] buf = new byte[1024]; int length = fis.read(buf); System.out.println("content=" + new String(buf, 0, length));//抛出StringIndexOutOfBoundsException*/System.out.println("driver=" + props.getProperty("jdbc.driver")); System.out.println("url=" + props.getProperty("jdbc.url")); System.out.println("username=" + props.getProperty("jdbc.username")); System.out.println("password=" + props.getProperty("jdbc.password"));/** * Properties其他可能用到的方法 */props.put("serverTimezone", "UTC");// 底层通过hashtable.put(key,value)props.put("jdbc.password", "456"); FileOutputStream fos = new FileOutputStream("Files/test02.xml");// 将Hashtable中的数据写入xml文件中props.storeToXML(fos, "来自属性文件的数据库连接四要素"); System.out.println(); System.out.println("遍历属性文件"); System.out.println("hashtable中键值对数目=" + props.size()); Enumeration keys = props.propertyNames();while (keys.hasMoreElements()) { String key = (String) keys.nextElement(); System.out.println(key + "=" + props.getProperty(key)); } }
Cette classe lit le fichier de propriétés en fonction de la classe : traite la propriété fichier en tant que Classe, ce qui signifie que le fichier de propriétés doit être placé dans un package, fait référence au fichier de propriétés en utilisant son nom de classe complet plutôt que son chemin.
/** * 基于类读取属性文件:该方法将属性文件当作类来处理,属性文件放在包中,使用属性文件的全限定性而非路径来指代文件 */@Testpublic void test02() { ResourceBundle bundle = ResourceBundle.getBundle("com.javase.properties.test01"); System.out.println("获取指定key的值"); System.out.println("driver=" + bundle.getString("jdbc.driver")); System.out.println("url=" + bundle.getString("jdbc.url")); System.out.println("username=" + bundle.getString("jdbc.username")); System.out.println("password=" + bundle.getString("jdbc.password")); System.out.println("-----------------------------"); System.out.println("遍历属性文件"); Enumeration<String> keys = bundle.getKeys();while (keys.hasMoreElements()) { String key = keys.nextElement(); System.out.println(key + "=" + bundle.getString(key)); } }
Mettez généralement les quatre éléments de la base de données. connexion dans Dans le fichier de propriétés, le programme lit les paramètres du fichier de propriétés, de sorte que lorsque les éléments de connexion à la base de données changent, n'a pas besoin de modifier le code source. Méthode pour charger le contenu du fichier de propriétés dans le document XML :
Configurer les contraintes de contexte dans l'en-tête du fichier de configuration.
Ajoutez
Obtenir le contenu du fichier de configuration : ${key}
Le # placé devant permet d'ajouter des commentaires dans le fichier de propriétés.
Le fichier d'attributs utilise l'encodage ISO-8859-1, qui ne prend pas en charge le chinois, et les caractères chinois seront convertis Affiché en mode de codage Unicode.
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!