色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

java 如何讀取properties文件

瀏覽:63日期:2022-08-21 15:02:06

1.情景展示

java 如何讀取properties文件

將要訪問(wèn)的接口地址等常用的配置添加到properties文件中,比直接寫(xiě)到j(luò)ava類(lèi)中的好處在于:

當(dāng)我們需要修改相應(yīng)配置時(shí),直接修改properties文件,重啟tomcat即可,避免了重新編譯引用該配置的java文件,同時(shí),也便于項(xiàng)目的維護(hù)。

方式一

通過(guò)spring的工具類(lèi)PropertiesLoaderUtils來(lái)實(shí)現(xiàn)對(duì)properties文件的解析

所需jar包:spring的核心jar包,spring-core-版本號(hào).jar

import java.io.IOException;import java.util.HashMap;import java.util.Map;import java.util.Properties;import org.springframework.core.io.support.PropertiesLoaderUtils;/** * 借助spring讀取Properties文件 * @explain Spring 提供的 PropertiesLoaderUtils * 允許您直接通過(guò)基于類(lèi)路徑的文件地址加載屬性資源 最大的好處就是:實(shí)時(shí)加載配置文件,修改后立即生效,不必重啟 * @author Marydon * @creationTime 2018年5月23日上午9:58:59 * @version 1.0 * @since * @email marydon20170307@163.com */public class PropertiesUtils { /** * 讀取properties文件 * @param fileName properties文件名及所在路徑 * @explain 參數(shù)說(shuō)明 * 1.傳遞的參數(shù)不是properties類(lèi)型文件,不會(huì)報(bào)錯(cuò),返回的是空Map; * 2.傳遞的參數(shù)是根本不存在的properties文件,也不會(huì)報(bào)錯(cuò),返回的是空Map; * 3.傳遞的參數(shù)可以帶路徑,可以正常解析到 * @return */ public static Map<String, String> readProperties(String fileName) { Map<String, String> resultMap = new HashMap<String, String>(); try { Properties props = PropertiesLoaderUtils.loadAllProperties(fileName); for (Object key : props.keySet()) {resultMap.put(key.toString(), props.get(key).toString()); } } catch (IOException e) { e.printStackTrace(); } return resultMap; } /** * @param args */ public static void main(String[] args) {// Map map = readProperties('base/web/imageInfo/fileRootDirectories.properties'); Map map = readProperties('fileRootDirectories.properties'); for (Object key : map.keySet()) { System.out.println(key.toString() + '=' + map.get(key).toString()); } // 打印結(jié)果 // fileRootPath=uploadFiles }}

這種方式的缺點(diǎn)在于:

每次調(diào)用都要重新解析對(duì)應(yīng)的properties文件,所以,我們可以在項(xiàng)目啟動(dòng)的時(shí)候,就把該文件加載到內(nèi)存中(一次加載解析,永久使用)。

方式二

import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io.IOException;import java.io.InputStream;import java.util.Properties;/** * properties文件工具類(lèi) * @description * 在該類(lèi)被加載的時(shí)候,它就會(huì)自動(dòng)讀取指定位置的配置文件內(nèi)容并保存到靜態(tài)屬性中,高效且方便,一次加載,可多次使用 * @author: Marydon * @date: 2020年07月13日 0013 16:04 */public class PropertyUtils_old { private static Logger logger = LoggerFactory.getLogger(PropertyUtils_old.class); // 待解析的properties文件名稱(chēng) private static final String FILE_NAME = 'bill.properties'; // 用于接收解析過(guò)properties文件 private static Properties props; // 靜態(tài)代碼塊:在該類(lèi)被加載到內(nèi)容中時(shí),該代碼塊會(huì)執(zhí)行 static { // 靜態(tài)代碼塊執(zhí)行時(shí)將要執(zhí)行的方法 loadPropertiesFile(); } synchronized static private void loadPropertiesFile() { logger.debug('開(kāi)始加載properties文件內(nèi)容.......'); props = new Properties(); InputStream in = null; try { // 方式一:通過(guò)類(lèi)加載器進(jìn)行獲取properties文件流(不用添加路徑) in = PropertyUtils_old.class.getClassLoader().getResourceAsStream(FILE_NAME); // 方式二:通過(guò)類(lèi)進(jìn)行獲取properties文件流(需要加/) // in = PropertyUtils.class.getResourceAsStream('/bill.properties'); props.load(in); } catch (NullPointerException e) { logger.error('bill.properties文件未找到!'); } catch (IOException e) { logger.error('出現(xiàn)IOException!'); } finally { try { if (null != in) { in.close(); } } catch (IOException e) { logger.error('bill.properties文件流關(guān)閉出現(xiàn)異常'); } } logger.info('加載properties文件內(nèi)容完成...........'); logger.info('properties文件內(nèi)容:' + props); } /* * 獲取properties文件中指定key的value * @date: 2020年07月13日 0013 16:17 * @param: key * @return: java.lang.String */ public static String getProperty(String key) { if (null == props) { loadPropertiesFile(); } return props.getProperty(key); } /* * 獲取properties文件中指定key的value * @date: 2020年07月13日 0013 16:17 * @param: key * @param: defaultValue * @return: java.lang.String */ public static String getProperty(String key, String defaultValue) { if (null == props) { loadPropertiesFile(); } return props.getProperty(key, defaultValue); }}

測(cè)試

public static void main(String[] args) { System.out.println(getProperty('bill.czInterfaceAddress'));}

java 如何讀取properties文件

方式一也可以按照方式二的形式,來(lái)達(dá)到一次加載,永久使用的效果。

以上就是java 如何讀取properties文件的詳細(xì)內(nèi)容,更多關(guān)于java 讀取properties文件的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 国产欧美一区二区三区免费看 | 国产xvideos国产在线 | 思思久热re6这里有精品 | 免费播放欧美毛片欧美aaaaa | 鲁大师成人精品视频 | 黑人巨大交牲老太 | 久久中文亚洲国产 | 日韩精品亚洲人成在线观看 | 国产不卡影院 | 国产福利不卡一区二区三区 | 亚洲精品456在线播放无广告 | 在线观看片成人免费视频 | 国产成人免费永久播放视频平台 | 性色综合 | 长腿嫩模打开双腿呻吟 | 九一国产 | 中文字幕av一区二区三区 | 欧美一级做一级爱a做片性 欧美一欧美一级毛片 | 国产欧美日韩免费一区二区 | 久久国产欧美日韩高清专区 | 欧美第五页 | 全球成人网 | 在线观看片成人免费视频 | 国产美女在线精品亚洲二区 | 久久精品久久精品久久精品 | 午夜影院欧美 | 久久91综合国产91久久精品 | 农村寡妇野外情一级毛片 | 美女被男人桶到嗷嗷叫爽网站 | 欧美自拍另类 | 亚洲高清不卡 | 国产精品免费一级在线观看 | 亚洲视频一区二区三区 | 热re91久久精品国产91热 | 亚洲无限看| 特黄特黄| 香港三澳门三日本三级 | 久久久久亚洲香蕉网 | 久久久最新精品 | 久久久99精品免费观看精品 | 黄色在线播放 |