本篇內容主要講解“怎么使用Java代碼讀取properties配置文件”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么使用Java代碼讀取properties配置文件”吧!
package com.easycrud.utils; import java.io.IOException; import java.io.InputStream; import java.util.Iterator; import java.util.Map; import java.util.Properties; import java.util.concurrent.ConcurrentHashMap; /** * @BelongsProject: EasyCrud * @BelongsPackage: com.easycrud.utils * @Author: xpx * @Email: 2436846019@qq.com * @CreateTime: 2023-05-02 16:05 * @Description: 讀取properties配置文件工具類 * @Version: 1.0 */ public class PropertiesUtils { private static Properties props = new Properties(); private static Map<String,String> PROPER_MAP = new ConcurrentHashMap<String, String>(); /** * 項目初始化時就去讀取配置文件 */ static { InputStream is = null; try{ is = PropertiesUtils.class.getClassLoader().getResourceAsStream("application.properties"); props.load(is); Iterator<Object> iterator = props.keySet().iterator(); while (iterator.hasNext()){ String key = (String) iterator.next(); PROPER_MAP.put(key,props.getProperty(key)); } }catch (Exception e){ }finally { if (is != null){ try { is.close(); } catch (IOException e) { e.printStackTrace(); } } } } /** * 對外提供方法通過key取值 * @param key * @return */ public static String getString(String key) { return PROPER_MAP.get(key); } /** * 測試能否成功取值 * @param args */ public static void main(String[] args) { System.out.println("測試打?。?quot;+getString("db.driver.name")); } }
Properties 繼承于 Hashtable。表示一個持久的屬性集.屬性列表中每個鍵及其對應值都是一個字符串。
HashTable是一個線程安全的類,它使用synchronized來鎖住整張Hash表來實現線程安全,即每次鎖住整張表讓線程獨占,相當于所有線程進行讀寫時都去競爭一把鎖,導致效率非常低下。ConcurrentHashMap可以做到讀取數據不加鎖,并且其內部的結構可以讓其在進行寫操作的時候能夠將鎖的粒度保持地盡量地小,允許多個修改操作并發進行,其關鍵在于使用了鎖分段技術。它使用了多個鎖來控制對hash表的不同部分進行的修改。對于JDK1.7版本的實現, ConcurrentHashMap內部使用段(Segment)來表示這些不同的部分,每個段其實就是一個小的Hashtable,它們有自己的鎖。只要多個修改操作發生在不同的段上,它們就可以并發進行。JDK1.8的實現降低鎖的粒度,JDK1.7版本鎖的粒度是基于Segment的,包含多個HashEntry,而JDK1.8鎖的粒度就是HashEntry(首節點)。
static代碼塊一般用于初始化類中的靜態變量,該靜態代碼塊在類加載過程中的初始化階段執行,并且只執行一次。
字節輸入流。
try{
可能發生異常的代碼
}catch(可能發生的異常類型 異常對象名){
當前異常類型的處理方式
}finally{
一定要執行的代碼
}
IOException 是在使用流、文件和目錄訪問信息時引發的異常的基類
在命令行打印異常信息在程序中出錯的位置及原因。
Class是當前類的Class對象,Class.getClassLoader()是獲取當前類的類加載器。類加載器的大概作用是當需要使用一個類時,加載該類的".class"文件,并創建對應的class對象,將class文件加載到虛擬機的內存。getResourceAsStream()是獲取資源的輸入流。類加載器默認是從classPath路徑加載資源。
Properties的方法是逐行讀取properties配置文件,分隔成兩個字符串key和value,將他們放進Properties對象中。
迭代器 it 的三個基本操作是 next 、hasNext 和 remove。
調用 it.next() 會返回迭代器的下一個元素,并且更新迭代器的狀態。
調用 it.hasNext() 用于檢測集合中是否還有元素。
調用 it.remove() 將迭代器返回的元素刪除。
如果有一個Map對象,可以使用 map.keySet()方法獲取所有的key值。
獲取迭代器保存在A中。
到此,相信大家對“怎么使用Java代碼讀取properties配置文件”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。