⑴ java怎麼讀取properties文件
利用java.util.Properties類進行操作
一、步驟如下:
0、創建Properties類對象
1、取得properties文件的輸入流
2、使用Properties類載入該輸入流內容
3、關閉輸入流節約資源
4、此時可以直接操作Properties對象取得文件中的內容了
二、Properties類說明
0、是Hashtable的子類,所以具有Hashtable的性質
1、可以通過load方法載入輸入流
2、具有特有的查詢方法,可以通過getProperties查詢某個鍵的值或propertyNames查詢所有鍵枚舉或stringPropertyNames查詢所有鍵集
3、 添加屬性具有特定的方法,可以通過setProperty添加(同put方法)
4、屬性內容載入到列印輸出流,可以通過list方法
5、屬性保存到文件,可以通過store保存為properties和storeToXML方法保存為xml文件
三、實常式序
給出了對屬性文件增刪改查及保存的方法
⑵ JAVA中如何讀取src下所有的properties文件
1.使用java.util.Properties類的load()方法
示例:
//文件在項目下。不是在包下!!
InputStream in = new BufferedInputStream(new FileInputStream("demo.properties")) ;
Properties p = new Properties();
p.load(in) ;
String className2 = p.getProperty("database.driver");
String url = p.getProperty("database.url");
String user = p.getProperty("database.user");
String password = p.getProperty("database.pass");
總結:如果是 在WEB上讀取properties文件,寫成下面這種。上面寫的那些只在 JavaSE 中
String path = Thread.currentThread().getContextClassLoader().getResource("").getPath();
System.out.println(path);
InputStream in = new FileInputStream(new File(path+File.separator+"mysql.properties"));
Properties prop = new Properties();
⑶ property在Java中的用法
JDK 中的 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 () ,清除所有裝載的 鍵 - 值對。該方法在基類中提供。
⑷ 在java中如何讀取properties文件
使用java.util.Propertiesx0dx0ax0dx0a1、創建一個Properties對象。x0dx0a2、使用對象的load方法載入你的property文件。x0dx0a3、使用getProperty方法取值。x0dx0a例子:x0dx0apackage com.bill.test;x0dx0ax0dx0aimport java.io.FileInputStream;x0dx0aimport java.util.Properties;x0dx0ax0dx0apublic class Test {x0dx0apublic static void main(String[] args) throws Exception{x0dx0aProperties property = new Properties();x0dx0aproperty.load(new FileInputStream("你的文件位置"));x0dx0aString value = property.getProperty("你的屬性的key");x0dx0a//TODO 使用value...x0dx0a}x0dx0a}
⑸ 五種方式讓你在java中讀取properties文件內容不再是難題
在項目開發中,處理properties文件內容讀取問題,尤其是需要動態修改變數值,不再修改代碼時,選擇合適的方法至關重要。本文通過Spring+SpringMVC+Mybatis整合開發項目,詳細梳理了五種實現方式,旨在解決這一常見需求,以供開發者參考。
### 五種實現方式詳解
#### 1. **通過context:property-placeholder載入配置文件
使用``載入配置文件,簡化配置。
注意:在`spring-mvc.xml`文件中進行配置時,確保使用`context:component-scan`標簽,並設置`use-default-filters="false"`,以避免不必要的載入。
#### 2. **使用註解注入
在代碼中使用`@Value`註解注入properties文件中的值。
配置文件路徑:`classpath:jdbc.properties`
#### 3. **利用`util:properties`標簽
使用``暴露properties文件內容。
在`spring-.xml`文件頭部聲明``。
#### 4. **自定義PropertyPlaceholderConfigurer
創建`PropertyConfigurer`類,繼承`PropertyPlaceholderConfigurer`,覆蓋`processProperties`方法並保存配置信息。
配置文件路徑:`classpath:jdbc.properties`
使用方式:在需要使用該配置信息的類中注入`PropertyConfigurer`實例。
#### 5. **自定義工具類PropertyUtil
創建`PropertyUtil`類,靜態代碼塊讀取properties文件內容保存到靜態屬性中,供其他程序調用。
配置文件路徑:`jdbc.properties`
通過`getProperty`方法獲取文件內容,`getProperty`方法支持默認值。
### **注意事項及建議**
- 前三種方式相對死板,適用於特定場景,需要在配置文件中聲明使用。
- 建議使用第四種和第五種配置方式,第五種方式最佳,無需額外注入,靜態方法直接調用,高效且方便。
### **測試驗證**
- 創建`PropertiesService`介面及其實現類`PropertiesServiceImpl`,通過`PropertyController`控制器類測試不同方式的實現效果。
- 測試代碼覆蓋所有實現方式,驗證其可用性。
### **總結**
通過本文介紹的五種方法,開發者可以根據項目需求靈活選擇,優化代碼結構,提高開發效率。同時,理解`context:component-scan`標簽的`use-default-filters`屬性及原理,有助於更高效地定位和解決問題。加入Java架構開發群,獲取更多學習資源和交流機會,不斷精進技能。
⑹ java讀取properties文件
InputStream in = getProperties.class.getClassLoader().getResourceAsStream(
"config.properties");
這一句換個寫法試試:
Properties props = new Properties();
String url = this.getClass().getClassLoader().getResource(
"config.properties").toString().substring(6);
String empUrl = url.replace("%20", " ");// 如果你的文件路徑中包含空格,是必定會報錯的
System.out.println(empUrl);
InputStream in = null;
try {
in = new BufferedInputStream(new FileInputStream(empUrl));
props.load(in);
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
我就是一直這么寫的,沒問題。
我猜你讀取文件為空的原因,是你的文件路徑有空格。