日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Java讀取.properties配置文件的幾種方式

瀏覽:26日期:2022-08-25 13:46:18

Java 開發中,需要將一些易變的配置參數放置再 XML 配置文件或者 properties 配置文件中。然而 XML 配置文件需要通過 DOM 或 SAX 方式解析,而讀取 properties 配置文件就比較容易。

介紹幾種讀取方式:

1、基于ClassLoder讀取配置文件

注意:該方式只能讀取類路徑下的配置文件,有局限但是如果配置文件在類路徑下比較方便。

Properties properties = new Properties(); // 使用ClassLoader加載properties配置文件生成對應的輸入流 InputStream in = PropertiesMain.class.getClassLoader().getResourceAsStream('config/config.properties'); // 使用properties對象加載輸入流 properties.load(in); //獲取key對應的value值 properties.getProperty(String key);

2、基于 InputStream 讀取配置文件

注意:該方式的優點在于可以讀取任意路徑下的配置文件

Properties properties = new Properties(); // 使用InPutStream流讀取properties文件 BufferedReader bufferedReader = new BufferedReader(new FileReader('E:/config.properties')); properties.load(bufferedReader); // 獲取key對應的value值 properties.getProperty(String key);

3、通過 java.util.ResourceBundle 類來讀取,這種方式比使用 Properties 要方便一些

1>通過 ResourceBundle.getBundle() 靜態方法來獲取(ResourceBundle是一個抽象類),這種方式來獲取properties屬性文件不需要加.properties后綴名,只需要文件名即可

properties.getProperty(String key); //config為屬性文件名,放在包com.test.config下,如果是放在src下,直接用config即可 ResourceBundle resource = ResourceBundle.getBundle('com/test/config/config'); String key = resource.getString('keyWord');

2>從 InputStream 中讀取,獲取 InputStream 的方法和上面一樣,不再贅述

ResourceBundle resource = new PropertyResourceBundle(inStream);

注意:在使用中遇到的最大的問題可能是配置文件的路徑問題,如果配置文件入在當前類所在的包下,那么需要使用包名限定,如:config.properties入在com.test.config包下,則要使用com/test/config/config.properties(通過Properties來獲取)或com/test/config/config(通過ResourceBundle來獲取);屬性文件在src根目錄下,則直接使用config.properties或config即可。

下面附上幾種方式的測試代碼,僅供參考:

package com.test.properties;import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.util.Enumeration;import java.util.Properties;import org.springframework.core.io.support.PropertiesLoaderUtils;/** * * @ClassName: TestProperties * @Description: 獲取配置文件信息 * @date: 2017年11月25日 上午10:56:00 * @version: 1.0.0 */public class TestProperties { /** * * @Title: printAllProperty * @Description: 輸出所有配置信息 * @param props * @return void * @throws */ private static void printAllProperty(Properties props) { @SuppressWarnings('rawtypes') Enumeration en = props.propertyNames(); while (en.hasMoreElements()) { String key = (String) en.nextElement(); String value = props.getProperty(key); System.out.println(key + ' : ' + value); } } /** * 根據key讀取value * * @Title: getProperties_1 * @Description: 第一種方式:根據文件名使用spring中的工具類進行解析 * filePath是相對路勁,文件需在classpath目錄下 * 比如:config.properties在包com.test.config下, *路徑就是com/test/config/config.properties * * @param filePath * @param keyWord * @return * @return String * @throws */ public static String getProperties_1(String filePath, String keyWord){ Properties prop = null; String value = null; try { // 通過Spring中的PropertiesLoaderUtils工具類進行獲取 prop = PropertiesLoaderUtils.loadAllProperties(filePath); // 根據關鍵字查詢相應的值 value = prop.getProperty(keyWord); } catch (IOException e) { e.printStackTrace(); } return value; } /** * 讀取配置文件所有信息 * * @Title: getProperties_1 * @Description: 第一種方式:根據文件名使用Spring中的工具類進行解析 * filePath是相對路勁,文件需在classpath目錄下 * 比如:config.properties在包com.test.config下, *路徑就是com/test/config/config.properties * * @param filePath * @return void * @throws */ public static void getProperties_1(String filePath){ Properties prop = null; try { // 通過Spring中的PropertiesLoaderUtils工具類進行獲取 prop = PropertiesLoaderUtils.loadAllProperties(filePath); printAllProperty(prop); } catch (IOException e) { e.printStackTrace(); } } /** * 根據key讀取value * * @Title: getProperties_2 * @Description: 第二種方式:使用緩沖輸入流讀取配置文件,然后將其加載,再按需操作 * 絕對路徑或相對路徑, 如果是相對路徑,則從當前項目下的目錄開始計算, * 如:當前項目路徑/config/config.properties, * 相對路徑就是config/config.properties * * @param filePath * @param keyWord * @return * @return String * @throws */ public static String getProperties_2(String filePath, String keyWord){ Properties prop = new Properties(); String value = null; try { // 通過輸入緩沖流進行讀取配置文件 InputStream InputStream = new BufferedInputStream(new FileInputStream(new File(filePath))); // 加載輸入流 prop.load(InputStream); // 根據關鍵字獲取value值 value = prop.getProperty(keyWord); } catch (Exception e) { e.printStackTrace(); } return value; } /** * 讀取配置文件所有信息 * * @Title: getProperties_2 * @Description: 第二種方式:使用緩沖輸入流讀取配置文件,然后將其加載,再按需操作 * 絕對路徑或相對路徑, 如果是相對路徑,則從當前項目下的目錄開始計算, * 如:當前項目路徑/config/config.properties, * 相對路徑就是config/config.properties * * @param filePath * @return void * @throws */ public static void getProperties_2(String filePath){ Properties prop = new Properties(); try { // 通過輸入緩沖流進行讀取配置文件 InputStream InputStream = new BufferedInputStream(new FileInputStream(new File(filePath))); // 加載輸入流 prop.load(InputStream); printAllProperty(prop); } catch (Exception e) { e.printStackTrace(); } } /** * 根據key讀取value * * @Title: getProperties_3 * @Description: 第三種方式: * 相對路徑, properties文件需在classpath目錄下, * 比如:config.properties在包com.test.config下, * 路徑就是/com/test/config/config.properties * @param filePath * @param keyWord * @return * @return String * @throws */ public static String getProperties_3(String filePath, String keyWord){ Properties prop = new Properties(); String value = null; try { InputStream inputStream = TestProperties.class.getResourceAsStream(filePath); prop.load(inputStream); value = prop.getProperty(keyWord); } catch (IOException e) { e.printStackTrace(); } return value; } /** * 讀取配置文件所有信息 * * @Title: getProperties_3 * @Description: 第三種方式: * 相對路徑, properties文件需在classpath目錄下, * 比如:config.properties在包com.test.config下, * 路徑就是/com/test/config/config.properties * @param filePath * @return * @throws */ public static void getProperties_3(String filePath){ Properties prop = new Properties(); try { InputStream inputStream = TestProperties.class.getResourceAsStream(filePath); prop.load(inputStream); printAllProperty(prop); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { // 注意路徑問題 String properties_1 = getProperties_1('com/test/config/config.properties', 'wechat_appid'); System.out.println('wechat_appid = ' + properties_1); getProperties_1('com/test/config/config.properties'); System.out.println('*********************************************'); // 注意路徑問題 String properties_2 = getProperties_2('configure/configure.properties', 'jdbc.url'); System.out.println('jdbc.url = ' + properties_2); getProperties_2('configure/configure.properties'); System.out.println('*********************************************'); // 注意路徑問題 String properties_3 = getProperties_3('/com/test/config/config.properties', 'wechat_appid'); System.out.println('wechat_appid = ' + properties_3); getProperties_3('/com/test/config/config.properties'); }}

到此這篇關于Java讀取.properties配置文件的幾種方式的文章就介紹到這了,更多相關Java 讀取properties 配置內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久久久久久久丰满| 久久国产成人| 综合一区二区三区| 亚洲人成在线影院| 亚洲日产av中文字幕| 亚洲免费观看高清完整版在线观| 女人av一区| 视频一区视频二区在线观看| 蜜桃视频在线观看一区| 亚洲福利免费| 桃色一区二区| 四虎4545www国产精品| 国产欧美久久一区二区三区| 蜜臀久久99精品久久久画质超高清| 精品久久久亚洲| 亚洲欧美一区在线| 国产成人精品一区二区三区视频| 日韩av中文字幕一区二区三区| 狠狠爱www人成狠狠爱综合网| 精精国产xxxx视频在线播放 | 国产精品日韩欧美一区| 久久国际精品| 九一国产精品| 色老板在线视频一区二区| 精品成人18| 精品福利久久久| japanese国产精品| 国产日韩欧美一区二区三区| 韩国女主播一区二区三区| 97se亚洲| 99香蕉国产精品偷在线观看 | 免费观看日韩电影| 日韩精选在线| 91精品国产调教在线观看| 亚洲区国产区| 久久久久久久久99精品大| 国产精品久久久久久久久久妞妞 | 亚洲精品人人| 日韩欧美另类一区二区| 日韩av在线免费观看不卡| 88xx成人免费观看视频库| 欧美女激情福利| 免费在线亚洲欧美| 亚洲精品在线国产| 亚洲香蕉网站| 美女国产一区二区三区| 手机精品视频在线观看| 成人午夜国产| 日韩电影免费网址| 国产精久久久| 日韩二区三区四区| 亚洲精品午夜av福利久久蜜桃| 九九99久久精品在免费线bt| 国产剧情一区| 亚洲伊人影院| 日韩一区二区久久| 激情国产在线| 美女一区网站| 在线精品亚洲欧美日韩国产| 成人在线视频免费| 免费在线播放第一区高清av| 欧美一级久久| 久久久国产精品网站| 国产精品伦理久久久久久| 国产精品原创| 五月综合激情| 91麻豆精品激情在线观看最新| 精品视频网站| 欧美午夜不卡影院在线观看完整版免费| 亚洲在线电影| 国产精品xvideos88| 久久一区欧美| 欧美精品一区二区久久| 免费观看日韩电影| 国产中文欧美日韩在线| 精品在线91| 国产免费av国片精品草莓男男| 国产综合色区在线观看| 婷婷精品在线观看| 亚洲电影有码| 国产精品传媒麻豆hd| 欧美二三四区| 日韩影片在线观看| 999国产精品| 精品精品99| 日韩一区二区三区四区五区| 国产成人精品一区二区免费看京 | 久久激情五月婷婷| 欧洲av一区二区| 日韩不卡一二三区| 亚洲一级黄色| 精品72久久久久中文字幕| 亚洲精选久久| 午夜国产精品视频免费体验区| 国产伦理一区| 亚洲一区二区三区中文字幕在线观看| 国产不卡精品在线| 免费一级欧美片在线观看网站| 日韩国产成人精品| 亚州av一区| 日韩精品午夜视频| 蜜臀a∨国产成人精品| 国产免费成人| 日韩制服丝袜av| 在线精品视频一区| 亚洲精品三级| 欧美亚洲一区二区三区| 午夜久久美女| 亚洲经典在线| 蜜桃av一区二区| 国产亚洲一卡2卡3卡4卡新区| 日韩午夜电影| 婷婷亚洲综合| 首页国产欧美日韩丝袜| 蜜桃av一区二区三区电影| 久久午夜精品一区二区| 日本不卡视频在线观看| 欧美日韩在线精品一区二区三区激情综合| 亚洲有吗中文字幕| 久久黄色影视| 久久一级电影| 欧洲在线一区| 免费看日韩精品| 婷婷综合社区| 国产毛片一区二区三区| 色综合www| 911精品国产| 日本蜜桃在线观看视频| 在线精品一区| 日韩精品免费一区二区三区| 日本欧美在线| 一区二区自拍| 欧美黄色网页| 精品理论电影在线| 日本不卡不码高清免费观看| 亚洲二区在线| 国产一区二区三区精品在线观看| 蜜桃视频欧美| 狠狠躁少妇一区二区三区| 日韩在线网址| 亚洲1234区| 日韩欧美另类中文字幕| 岛国精品一区| 巨乳诱惑日韩免费av| 欧美成人一二区| 夜夜嗨一区二区| 欧美黑人巨大videos精品| 在线综合视频| 久久久久久婷| 啪啪亚洲精品| 亚洲主播在线| av高清不卡| 精品一区二区三区免费看 | 免费中文字幕日韩欧美| 国产精品videossex| 国产亚洲亚洲| 久久国产电影| а√天堂中文在线资源8| 国产另类在线| 欧美亚洲一区二区三区| 日韩精品亚洲专区| 日韩影院免费视频| 国模 一区 二区 三区| 国产一区二区三区四区| 久久av影院| 国产精品一区二区三区四区在线观看 | 五月婷婷亚洲| av最新在线| 国产一区二区三区天码| 四虎成人av| 午夜精品成人av| 99成人超碰| 好吊日精品视频| 午夜一级在线看亚洲| 欧美精品九九| 久久最新视频| 日韩综合小视频| 欧美日韩亚洲一区在线观看| 欧美中文一区| 免费一级欧美片在线观看网站| 久久影院资源站| 成人福利av| 日韩精品一区二区三区免费观看| 人人草在线视频| 亚洲成人免费| 蜜臀久久99精品久久久画质超高清| 亚洲午夜国产成人| 久久激情五月婷婷| 日韩一区二区三区免费| 亚洲免费精品| 奇米色欧美一区二区三区| 久久不见久久见中文字幕免费| 激情国产在线| 三级欧美在线一区| 国产精品成人**免费视频| 日韩美女一区二区三区在线观看| 免费视频国产一区| 欧美在线精品一区| 亚洲www啪成人一区二区| 综合国产精品|