PropertiesUtil 獲取文件屬性值

?

有時候不要把一些屬性值寫死在代碼中,而是寫在配置在文件中,方便更改

?

PropertiesUtil工具類:讀取key-value形式的配置文件,根據key獲得value值?

?

1、測試類

?

public class Test{private static PropertiesUtil propertiesUtil = new PropertiesUtil("file.properties");//根據文件中的key獲取value值String value = propertiesUtil.getStringProperty("文件中的key");}

  

?

?2、PropertiesUtil.java工具類

package com.util;import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Collection;
import java.util.Properties;
import java.util.Set;import org.apache.log4j.Logger;public class PropertiesUtil {private static final Logger LOGGER = Logger.getLogger(PropertiesUtil.class);private final Properties props;public PropertiesUtil(final Properties props) {this.props = props;}public PropertiesUtil(final String propertiesFileName) {final Properties properties = new Properties();InputStreamReader in = null;try {in = new InputStreamReader(new FileInputStream(this.getClass().getResource("/").getPath()+propertiesFileName), "UTF-8");/** 獲取當前工程根目錄* in = new InputStreamReader(new FileInputStream(System.getProperty("user.dir") + File.separator + propertiesFileName), "UTF-8");*/properties.load(in);} catch (final IOException ioe) {LOGGER.error("Unable to read " + propertiesFileName, ioe);} finally {if (in != null) {try {in.close();} catch (final IOException ioe) {LOGGER.error("Unable to close " + propertiesFileName, ioe);}}}this.props = properties;}public String getStringProperty(final String name) {return props.getProperty(name);}public int getIntegerProperty(final String name, final int defaultValue) {String prop = props.getProperty(name);if (prop != null) {try {return Integer.parseInt(prop);} catch (final Exception ignored) {return defaultValue;}}return defaultValue;}public long getLongProperty(final String name, final long defaultValue) {String prop = props.getProperty(name);if (prop != null) {try {return Long.parseLong(prop);} catch (final Exception ignored) {return defaultValue;}}return defaultValue;}public float getFloatProperty(final String name,final float defaultValue){String prop = props.getProperty(name);if (prop != null) {try {return Float.parseFloat(prop);} catch (final Exception ignored) {return defaultValue;}}return defaultValue;}public String getStringProperty(final String name, final String defaultValue) {final String prop = getStringProperty(name);return (prop == null) ? defaultValue : prop;}public boolean getBooleanProperty(final String name) {return getBooleanProperty(name, false);}public boolean getBooleanProperty(final String name, final boolean defaultValue) {final String prop = getStringProperty(name);return (prop == null) ? defaultValue : "true".equalsIgnoreCase(prop);}public Set<Object> keySet(){return props.keySet();}public Collection<Object> values(){return props.values();}}

  

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/282897.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/282897.shtml
英文地址,請注明出處:http://en.pswp.cn/news/282897.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CORS——跨域請求那些事兒

【本期嘉賓介紹】睿得&#xff0c;具有多年研發、運維、安全等IT相關從業經歷。目前從事CDN、存儲、視頻直播點播的技術支持。喜愛鉆研&#xff0c;喜愛編碼&#xff0c;喜愛分享。 在日常的項目開發時會不可避免的需要進行跨域操作&#xff0c;而在實際進行跨域請求時&#xf…

oracle 數據執行計劃,Oracle里常見的執行計劃

本文介紹了Oracle數據庫里常見的執行計劃&#xff0c;使用的Oracle數據庫版本為11.2.0.1。1、與表訪問相關的執行計劃Oracle數據庫里與表訪問有關的兩種方法&#xff1a;全表掃描和ROWID掃描。反映在執行計劃上&#xff0c;與全表掃描對應的執行計劃中的關鍵字是“TABLE ACCESS…

.NET MAUI實戰 Dispatcher

詳細內容這一期分享的內容非常簡單&#xff0c;在之前使用過WPF的開發者對MVVM開發模式下ViewModel中后臺線程轉UI線程并不陌生使用Appplication.Current.Dispatcher。那么在.NET MAUI中也有同樣的機制&#xff0c;存在于.NET MAUI Shell對象中。那么什么是Shell&#xff1f;官…

GDB 配置

GDB 配置 使用 GDB 擴展來配置 GDB 事實上我還是覺得原生的 GDB 就挺好&#xff0c;速度快&#xff0c;需要查看什么執行命令就可以。 GDB DashBoard https://github.com/cyrus-and/gdb-dashboard $sudo mkdir -m 777 ~/gdbinit; cd ~/gdbinit $git clone https://github.com/c…

Oracle區分中文和英文,oracle中中英文段落劃分實現

oracle中關于中文占用字節數&#xff0c;不同的數據庫有不同的情況&#xff0c;有的占用兩個字節、有的占用三個字節&#xff0c;現在測試環境的數據庫中文占用三個字節&#xff0c;要實現由中英文組成的段落字符串&#xff0c;按照每行占用多少字節重新分段&#xff0c;具體應…

未來哪些行業值得加入?

閱讀本文大概需要5分鐘。這個問題很多讀者都問過&#xff0c;基本上每隔幾篇原創就會有人留言問&#xff0c;還有公眾號后臺和知乎私聊。之前在一次留言中我承諾專門開一篇文章來聊聊這個話題&#xff0c;今天想著要兌現這個諾言了。為啥最近會存在這個問題呢&#xff0c;原因其…

虛擬機網絡配置詳解(NAT、橋接、Hostonly)

VirtualBox中有四種網絡連接方式: NATBridged AdapterInternalHost-only AdapterVMWare中有三種&#xff0c;其實它跟VMWare的網絡連接方式都是一樣的概念&#xff0c;只是比VMWare多了Internal方式 在介紹四種工作模式之前&#xff0c;先說下虛擬網卡&#xff0c;虛擬機安裝好…

Oracle收款核銷了怎么撤銷,21應收收款-核銷取消或核銷調整

注&#xff1a;本課程不包含學習下載資料目標人群&#xff1a;1、Oracle ERP/EBS初級顧問和技術顧問&#xff1b; 1、Oracle ERP/EBS用戶熟練學習ERP系統的基本設置功能&#xff1b; 2、Oracle ERP/EBS財務初級顧問的學習&#xff1b; 3、其他對Oracle ERP/EBS有興趣的想轉行如…

微軟宣布正式開源 Azure IoT Edge 邊緣計算服務

開發四年只會寫業務代碼&#xff0c;分布式高并發都不會還做程序員&#xff1f; 微軟宣布&#xff0c;去年年底公開預覽的 Azure IoT Edge 邊緣計算服務已進入官方版&#xff0c;并通過 GitHub 將其開源。Azure IoT Edge 主要將基于云的分析和定制的業務邏輯轉移到邊緣設備&a…

Windows下安裝BeautifulSoup

電腦首先要安裝好了python&#xff0c;我安裝的是2.7。 下面就是bs4的安裝過程了: 1.去官網下載BeautifulSoup4 2017.02.10目前最新版本&#xff1a;Beautiful Soup 4.3.2 2.解壓文件 將下載得到的壓縮包解壓到任意文件夾&#xff0c;路徑不含中文 3.打開cmd命令提示符 winr&am…

BZOJ1578: [Usaco2009 Feb]Stock Market 股票市場

S<50只股票D<10天的價格給出&#xff0c;求第一天開始用n<200000元最后能得到的最大錢數&#xff0c;保證答案<500000。 做D次完全背包即可&#xff0c;每次做完把dp數組清空。 1 #include<cstdio>2 #include<cstring>3 #include<algorithm>4 #i…

OC如何跳到系統設置里的各種設置界面

當 iOS系統版本 < iOS7時 , 只能跳轉到 系統設置頁面 &#xff0c;樓主試了下&#xff0c;非真機是沒有任何效果的 當iOS系統版本 < iOS 10.0 時 NSURL *url [NSURL URLWithString:"prefs:rootLOCATION_SERVICES"]; if( [[UIApplication sharedApplication]can…

oracle 注冊程序,oracle 靜態注冊

1. 最近在裝ASMDATAGUARD&#xff0c; 在靜態注冊上面吃了大虧&#xff0c;現總結如下2. 在Asm環境中&#xff0c;listener監聽器在grid用戶下DGLSN (DESCRIPTION_LIST (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST asm)(PORT 1521))))SID_LIST_DGLSN (SID_LIST (SID_DESC (…

Linux下find用法總結

find:實時查找工具&#xff0c;通過遍歷指定起始路徑下的文件系統層級結構完成文件查找:工作特性:查找速度略慢精確查找實時查找用法:find [option] [查找起始路徑][查找條件][處理動作]查找起始路徑&#xff1a;指定具體搜索目標起始路徑&#xff1b;默認為當前目錄查找條件:指…

虛擬DOM Diff算法解析

React中最神奇的部分莫過于虛擬DOM&#xff0c;以及其高效的Diff算法。這讓我們可以無需擔心性能問題而”毫無顧忌”的隨時“刷新”整個頁面&#xff0c;由虛擬DOM來確保只對界面上真正變化的部分進行實際的DOM操作。React在這一部分已經做到足夠透明&#xff0c;在實際開發中我…

生成ID模板:年月日時分秒+6位自增碼

因為生成訂單ID、商品ID 或者什么什么ID的&#xff0c;不想用自增&#xff0c;又怕反復&#xff0c;于是就用 年與日時分秒 6位自增碼 &#xff08;共計20位長度&#xff09;來當作ID 注意&#xff1a;假設你的ID是Long型。就要注意&#xff0c;Long的最大長度為19位&#xf…

oracle optimizer_features_enable,Oracle Optimizer:遷移到使用基于成本的優化器—–系列2.1-數據庫專欄,ORACLE...

oracle optimizer:遷移到使用基于成本的優化器—–系列2.1系列之二包含影響優化器選擇執行計劃的初始化參數和oracle內部隱藏參數&#xff0c;合理設置這些參數對于優化器是相當重要的。6.影響優化器的初始化參數除了生成統計資料之外&#xff0c;下面提及的參數設置在你的系統…

Azure 跨訂閱遷移資源踩坑記

突然收到微軟的郵件&#xff0c;提示我的一個 Azure 訂閱已經到期&#xff0c;所以轉為“禁用”狀態&#xff0c;只能進行數據的導出和處理。在這個訂閱里有不少較重要的資源在跑&#xff0c;直接關了可不行…于是開啟了一個支持事件&#xff0c;臺灣美眉的態度和聲線真的沒話說…

階乘的精確性

/* 輸入不超過1000的正整數n&#xff0c;輸出n!1*2*3*……*n的精確結果。 樣例輸入&#xff1a;30 樣例輸出&#xff1a;265252859812191058636308480000000 例如 n3&#xff1b;s6&#xff1b; n4&#xff1b;s24&#xff1b; n5&#xff1b;s120&#xff1b; 1000的階乘需要一…

Optaplanner規劃引擎的工作原理及簡單示例(1)

在之前的文章中&#xff0c;老猿已介紹過APS及規劃的相關內容&#xff0c;也對Optaplanner相關的概念和一些使用示例進行過介紹&#xff0c;接下來的文章中&#xff0c;我會自己做一個規劃小程序 - 一個關于把任務分配到不同的機臺上進行作來的小程序&#xff0c;并在這個小程序…