1. 程式人生 > >JAVA讀取properties時路徑注意問題,

JAVA讀取properties時路徑注意問題,

先來看看建立的測試工程目錄


屬性檔案我們放在包test下,當然了,一般在實際開發過程中不建議這樣做,建立把屬性檔案放在src目錄下,現在放在包下主要是便於瞭解路徑的問題。

下面來看一段讀取屬性檔案的程式碼,屬性檔案配置了一個類Hello的K-V鍵值,我們要從中讀取並載入到記憶體中來。

ReadProperties.properties

v=com.luhy.test.Hello


Hello類:

package com.luhy.test;

public class Hello {
	public void run(){
		System.out.println("Hello");
	}
}

ReadProperties.java
package com.luhy.test;

import java.util.Properties;

public class ReadProperties {
	public static void main(String[] args) throws Exception{
		String filename = "com/luhy/test/ReadProperties.properties";
		Properties props = new Properties();
		props.load(ReadProperties.class.getClassLoader().getResourceAsStream(filename));
		String h = props.getProperty("v");
		Object o = Class.forName(h).newInstance();
		Hello hello = (Hello)o;
		hello.run();
		
	}
}

執行完列印輸出:
Hello

下面再來看一下編譯後的bin目錄


可見編譯後屬性檔案被自動放到相應的包內,當然了,這裡的bin相當於原始碼中的src,實際開發中一般放在此src目錄下,這樣在釋出專案時就不用折騰了。

說明:

1、props.load(ReadProperties.class.getClassLoader().getResourceAsStream(filename));意思是獲得從Properties類獲得類載入器(類載入器主要有四種,分別載入不同型別的類,載入只是把class檔案放進記憶體,並沒有產生物件),並把指定檔案轉化為流。這一步,有很多新手,直接往load()裡填檔名或具體檔案路徑名,程式執行時會報錯找不到指定路徑。所以,一定要注意這點。