java各種讀取properties檔案方法
java中的properties檔案是一種配置檔案,主要用於表達配置資訊,檔案型別為*.properties,格式為文字檔案,檔案的內容是格式是"鍵=值"的格式,在properties檔案中,可以用"#"來作註釋,properties檔案在Java程式設計中用到的地方很多,操作很方便。
例如:
- test.properties
- ------------------------------------------------------
- #################################
- # 工商報表應用IcisReport的配置檔案#
-
# 日期:2015年08月01日 #
- #################################
- #
- # 說明:測試
- #
- #IcisReport的ip
- IcisReport.server.ip=192.168.3.143
- #IcisReport的埠
- IcisReport.server.port=8080
- #IcisReport的上下文路徑
- IcisReport.contextPath=/IcisReport
Properties類的重要方法
Properties 類存在於胞 Java.util 中,該類繼承自 Hashtable
1. getProperty ( String key) , 用指定的鍵在此屬性列表中搜索屬性。也就是通過引數 key ,得到 key 所對應的 value。
2. load ( InputStream inStream) ,從輸入流中讀取屬性列表(鍵和元素對)。通過對指定的檔案(比如說上面的 test.properties 檔案)進行裝載來獲取該文件中的所有鍵 - 值對。以供 getProperty ( String key) 來搜尋。
3. setProperty ( String key, String value) ,呼叫 Hashtable 的方法 put 。他通過呼叫基類的put方法來設定 鍵 - 值對。
4. store ( OutputStream out, String comments) , 以適合使用 load 方法載入到
5. clear () ,清除所有裝載的 鍵 - 值對。該方法在基類中提供。
properties檔案的路徑:java的properties檔案需要放到classpath下面,這樣程式才能讀取到,有關classpath實際上就是java類或者庫的存放路徑,在java工程中,properties放到class檔案一塊。在web應用中,最簡單的方法是放到web應用的WEB- INF\classes目錄下即可,也可以放在其他資料夾下面,這時候需要在設定classpath環境變數的時候,將這個資料夾路徑加到 classpath變數中,這樣也也可以讀取到。
讀取:
一、properties檔案的絕對路徑:
- String path = "C:\\db.properties";
- FileInputStream in = new FileInputStream(path);
- Properties prop = new Properties();
- prop.load(in);
- prop.getProperty("<span style="color: rgb(75, 75, 75); line-height: 18px; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; background-color: rgb(255, 255, 255);">IcisReport.server.ip</span>");
在web有兩種情形,一種是Servlet、一種是非Servlet
在Servlet中有2種方式:
1、
- InputStream in = this.getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties");
- Properties prop = new Properties();
- prop.load(in);
- prop.getProperty("username");
- String path = this.getServletContext().getRealPath("/WEB-INF/classes/db.properties");
- FileInputStream in = new FileInputStream(path);
- Properties prop = new Properties();
- prop.load(in);
- prop.getProperty("username");
1.直接將檔案裝載到記憶體中
- InputStream in = Demo.class.getClassLoader().getResourceAsStream("db.properties");
- Properties prop = new Properties();
- prop.load(in);
- prop.getProperty("username");
這種方法的
弊端
:類裝載器載入內容時,會先查詢記憶體中是否已經存在相應的內容:
如果有就不再載入直接使用記憶體中的,所以此方法,第一次載入後,如果檔案內容有變動,第二次載入後還是原來的內容,無法載入修改後的內容
下邊的第二種方法取檔案的絕對路徑來載入不會有這種問題
2.得到檔案的絕對路徑再進行操作
- String path = Demo.class.getClassLoader().getResource("db.properties").getPath();
- FileInputStream in = new FileInputStream(path);
- Properties prop = new Properties();
- prop.load(in);
- prop.getProperty("username");
最後給一個例子:
- //根據key讀取value
- publicstatic String readValue(String filePath,String key) {
- Properties props = new Properties();
- try {
- InputStream in = new BufferedInputStream (new FileInputStream(filePath));
- props.load(in);
- String value = props.getProperty (key);
- System.out.println(key+value);
- return value;
- } catch (Exception e) {
- e.printStackTrace();
- returnnull;
- }
- }
- //讀取properties的全部資訊
- publicstaticvoid readProperties(String filePath) {
- Properties props = new Properties();
- try {
- InputStream in = new BufferedInputStream (new FileInputStream(filePath));
- props.load(in);
- Enumeration en = props.propertyNames();
- while (en.hasMoreElements()) {
- String key = (String) en.nextElement();
- String Property = props.getProperty (key);
- System.out.println(key+Property);
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- //寫入properties資訊
- publicstaticvoid writeProperties(String filePath,String parameterName,String parameterValue) {
- Properties prop = new Properties();
- try {
- InputStream fis = new FileInputStream(filePath);
- //從輸入流中讀取屬性列表(鍵和元素對)
- prop.load(fis);
- //呼叫 Hashtable 的方法 put。使用 getProperty 方法提供並行性。
- //強制要求為屬性的鍵和值使用字串。返回值是 Hashtable 呼叫 put 的結果。
- OutputStream fos = new FileOutputStream(filePath);
- prop.setProperty(parameterName, parameterValue);
- //以適合使用 load 方法載入到 Properties 表中的格式,
- //將此 Properties 表中的屬性列表(鍵和元素對)寫入輸出流
- prop.store(fos, "Update '" + parameterName + "' value");
- } catch (IOException e) {
- System.err.println("Visit "+filePath+" for updating "+parameterName+" value error");
- }
- }
- publicstaticvoid main(String[] args) {
- readValue("info.properties","url");
- writeProperties("info.properties","age","21");
- readProperties("info.properties" );
- System.out.println("OK");
- }
相關推薦
java各種讀取properties檔案方法
java中的properties檔案是一種配置檔案,主要用於表達配置資訊,檔案型別為*.properties,格式為文字檔案,檔案的內容是格式是"鍵=值"的格式,在properties檔案中,可以用"#"來作註釋,properties檔案在Java程式設計中用到的地方很多
讀取properties檔案方法,properties檔案無法刪除
import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.Uns
五種方式讓你在java中讀取properties檔案內容不再是難題
一、背景 最近,在專案開發的過程中,遇到需要在properties檔案中定義一些自定義的變數,以供java程式動態的讀取,修改變數,不再需要修改程式碼的問題。就藉此機會把Spring+SpringMVC+Mybatis整合開發的專案中通過java程式讀取properties檔案內容的方式進行了梳理和分析
java中讀取properties檔案內容
package com.tgb.SpringActivemq.utils; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; impo
使用java程式碼讀取properties檔案內容工具類
使用java程式碼讀取properties檔案內容,一般工作中框架使用配置讀取properties,這裡只是工具類 程式碼如下: package demo.util; import java.io.IOException; import java.io.InputSt
Java讀取Properties檔案的六種方法
使用J2SE API讀取Properties檔案的六種方法1。使用java.util.Properties類的load()方法示例: InputStream in = lnew BufferedInputStream(new FileInputStream(name));Properties p = new
Java專案中讀取properties檔案,以及六種獲取路徑的方法
Java讀取properties檔案的方法比較多,網上最多的文章是"Java讀取properties檔案的六種方法",但在Java應用中,最常用還是通過java.lang.Class類的getResourceAsStream(String name) 方法來實現,但我見到眾多讀取properties檔案的
java讀取properties檔案的3種方法
Java 開發中,需要將一些易變的配置引數放置再 XML 配置檔案或者 properties 配置檔案中。然而 XML 配置檔案需要通過 DOM 或 SAX 方式解析,而讀取 properties 配置檔案就比較容易。 介紹幾種讀取方式: 1、基於ClassLoder
java 讀取properties檔案通用工具類
1.建立 PropertiesUtil.java檔案: package com.demo.util; import java.util.ResourceBundle; /** * 對系統中的config.properties配置檔案內容讀取工具類 * * Created by zha
Java工具類--讀取Properties檔案
package com.skr.mdm.util; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import java.io.InputStreamReader; import java.util.*; /** *
java 讀取json檔案方法以及操作json物件方法。
1 獲取本地js檔案路徑 Fileuri = ParseTools.class.getClassLoader().getResource("com/zxcl/parsejs/XinZhongChengParse.js").toURI(); 2
Java讀取properties檔案連線資料庫
先說為什麼要有這種東西,或者我們為什麼要用這種方式來寫,先看經常用的方法,我們經常寫的 package util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQ
java中讀取配置檔案的一些方法 getResourceAsStream 和 直接 FileInputStream 以及 配置System.getProperty("user.dir")所得的工作目錄
配置檔案位於 /src/ 下的情況已經由上述博主列出,需要的可以移步檢視,即以下幾個情況 1.路徑:src/aa.xml 2.位於src下同一個包下 3.位於src下不同包 不過本博主的專案是web專案,而配置檔案放在src檔案下容易因為快取導致更新不及時,
Java讀取.properties檔案
在java-web專案的開發中,經常讀取properties的配置檔案。但是對於properties的路徑問題很是疑惑,本次總結,是將檔案放到src目錄下。 這樣省了好多事情。寫到這裡,是為了以後在遇到這種事情,就直接copy了,畢竟作為程式設計師都是比較“懶”的。 直接上程式碼吧
java讀取properties檔案
1.通過java.util.Properties提供的getProperty()方法 /** * ConfigUtils.java * Created at 2018-10-16 * Created by IchimaruGin * Copyright
Java使用ResourceBundle類讀取properties檔案中文亂碼的解決方案
Java使用java.util.ResourceBundle類的方式來讀取properties檔案時不支援中文,要想支援中文必須將檔案設定為ISO-8859-1編碼格式,這對於開發工具預設為UTF-8來說很不友好,而且就算用ISO-8859-1編碼,當其他人將這個專案匯入開發工具時很容易出現這個propert
java讀取properties檔案對應值
tag.properties:src下的properties檔案。 1:定義 public static String urlProperty; 2:方法 Properties properties = new Properties();
Java Web讀取properties配置檔案
java action讀取src目錄下的properties配置檔案。 mailServer.properties配置檔案如下: mailServerHost = smtp.163.com mailServerPort = 25 authValidate = true u
Spring配置 在xml和java程式碼中讀取properties檔案
在spring引入屬性檔案 <bean id="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
java讀寫properties檔案,解決系統找不到指定路徑,解決寫入後讀取正常,但檔案資料未更新問題
properties屬性檔案:config.properties # #Tue Aug 13 15:30:56 CST 2013 timeInterval=33 name=holdOn filepath=bb ip=192.168.1.1 類例項:Configuration.java package