1. 程式人生 > >java各種讀取properties檔案方法

java各種讀取properties檔案方法

java中的properties檔案是一種配置檔案,主要用於表達配置資訊,檔案型別為*.properties,格式為文字檔案,檔案的內容是格式是"鍵=值"的格式,在properties檔案中,可以用"#"來作註釋,properties檔案在Java程式設計中用到的地方很多,操作很方便。

例如:

  1. test.properties  
  2. ------------------------------------------------------  
  3. #################################  
  4. #   工商報表應用IcisReport的配置檔案#  
  5. #   日期:2015年08月01日 #  
  6. #################################  
  7. #  
  8. #   說明:測試  
  9. #  
  10. #IcisReport的ip  
  11. IcisReport.server.ip=192.168.3.143  
  12. #IcisReport的埠  
  13. IcisReport.server.port=8080
  14. #IcisReport的上下文路徑  
  15. 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 方法載入到 
Properties 表中的格式,將此 Properties 表中的屬性列表(鍵和元素
對)寫入輸出流。與 load 方法相反,該方法將鍵 - 值對寫入到指定的檔案中去。
5. clear () ,清除所有裝載的 鍵 - 值對。該方法在基類中提供。

properties檔案的路徑:javaproperties檔案需要放到classpath下面,這樣程式才能讀取到,有關classpath實際上就是java類或者庫的存放路徑,在java工程中,properties放到class檔案一塊。在web應用中,最簡單的方法是放到web應用的WEB- INF\classes目錄下即可,也可以放在其他資料夾下面,這時候需要在設定classpath環境變數的時候,將這個資料夾路徑加到 classpath變數中,這樣也也可以讀取到。

讀取:

一、properties檔案的絕對路徑:

  1. String path = "C:\\db.properties";  
  2. FileInputStream in = new FileInputStream(path);  
  3. Properties prop = new Properties();  
  4. prop.load(in);  
  5. prop.getProperty("<span style="color: rgb(757575); line-height: 18px; font-family: 'Microsoft YaHei', Verdana, sans-serif, SimSun; background-color: rgb(255255255);">IcisReport.server.ip</span>");  
二、web工程中,檔案在工程中的位置$app/WEB-INF/classes/db.properties

在web有兩種情形,一種是Servlet、一種是非Servlet

在Servlet中有2種方式:

1、

  1. InputStream in = this.getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties");  
  2. Properties prop = new Properties();  
  3. prop.load(in);  
  4. prop.getProperty("username");  
2、
  1. String path = this.getServletContext().getRealPath("/WEB-INF/classes/db.properties");  
  2. FileInputStream in = new FileInputStream(path);  
  3. Properties prop = new Properties();  
  4. prop.load(in);  
  5. prop.getProperty("username");  
在非Servlet時,假設類名為Demo,要使用類裝載器來讀取,也有2種方式:
1.直接將檔案裝載到記憶體中
  1. InputStream in = Demo.class.getClassLoader().getResourceAsStream("db.properties");  
  2. Properties prop = new Properties();  
  3. prop.load(in);  
  4. prop.getProperty("username");  
這種方法的弊端:類裝載器載入內容時,會先查詢記憶體中是否已經存在相應的內容:如果有就不再載入直接使用記憶體中的,所以此方法,第一次載入後,如果檔案內容有變動,第二次載入後還是原來的內容,無法載入修改後的內容 下邊的第二種方法取檔案的絕對路徑來載入不會有這種問題

2.得到檔案的絕對路徑再進行操作

  1. String path = Demo.class.getClassLoader().getResource("db.properties").getPath();  
  2. FileInputStream in = new FileInputStream(path);  
  3. Properties prop = new Properties();  
  4. prop.load(in);  
  5. prop.getProperty("username");  

最後給一個例子:
  1. //根據key讀取value
  2. publicstatic String readValue(String filePath,String key) {  
  3.  Properties props = new Properties();  
  4.        try {  
  5.         InputStream in = new BufferedInputStream (new FileInputStream(filePath));  
  6.         props.load(in);  
  7.         String value = props.getProperty (key);  
  8.            System.out.println(key+value);  
  9.            return value;  
  10.        } catch (Exception e) {  
  11.         e.printStackTrace();  
  12.         returnnull;  
  13.        }  
  14. }  
  15. //讀取properties的全部資訊
  16.    publicstaticvoid readProperties(String filePath) {  
  17.     Properties props = new Properties();  
  18.        try {  
  19.         InputStream in = new BufferedInputStream (new FileInputStream(filePath));  
  20.         props.load(in);  
  21.            Enumeration en = props.propertyNames();  
  22.             while (en.hasMoreElements()) {  
  23.              String key = (String) en.nextElement();  
  24.                    String Property = props.getProperty (key);  
  25.                    System.out.println(key+Property);  
  26.                }  
  27.        } catch (Exception e) {  
  28.         e.printStackTrace();  
  29.        }  
  30.    }  
  31.    //寫入properties資訊
  32.    publicstaticvoid writeProperties(String filePath,String parameterName,String parameterValue) {  
  33.     Properties prop = new Properties();  
  34.     try {  
  35.      InputStream fis = new FileInputStream(filePath);  
  36.            //從輸入流中讀取屬性列表(鍵和元素對)
  37.            prop.load(fis);  
  38.            //呼叫 Hashtable 的方法 put。使用 getProperty 方法提供並行性。
  39.            //強制要求為屬性的鍵和值使用字串。返回值是 Hashtable 呼叫 put 的結果。
  40.            OutputStream fos = new FileOutputStream(filePath);  
  41.            prop.setProperty(parameterName, parameterValue);  
  42.            //以適合使用 load 方法載入到 Properties 表中的格式,
  43.            //將此 Properties 表中的屬性列表(鍵和元素對)寫入輸出流
  44.            prop.store(fos, "Update '" + parameterName + "' value");  
  45.        } catch (IOException e) {  
  46.         System.err.println("Visit "+filePath+" for updating "+parameterName+" value error");  
  47.        }  
  48.    }  
  49.    publicstaticvoid main(String[] args) {  
  50.     readValue("info.properties","url");  
  51.        writeProperties("info.properties","age","21");  
  52.        readProperties("info.properties" );  
  53.        System.out.println("OK");  
  54.    }  

相關推薦

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