2011-03-22 96 views
1

在我的web應用程序中,我使用web文件夾內的屬性文件,並且需要從同一應用程序中的java文件中引用屬性文件以獲取屬性的值。我如何提供路徑?我需要路徑名稱而不是URI。我的代碼如下:如何獲取運行時Web應用程序路徑?

Properties prop = new Properties(); 
    FileInputStream propertiesStream = null; 
    try { 
     propertiesStream = new FileInputStream("..\Files\Prop.properties"); 
     prop = new Properties(); 
     prop.load(propertiesStream); 
     prop.getProperty("id"); 
     propertiesStream.close(); 
    } catch (IOException ioException) { 
     System.out.println("PropertiesLoader IOException message:" + ioException.getMessage()); 
    } 
+0

你能解釋一下你的意思是什麼

/WEB-INF/classes/MyProperties.properties 

你可以用下面的代碼獲取它「參考」?你的意思是一個文件路徑或URL? – Zeemee 2011-03-22 10:42:24

回答

3

考慮到它是一個屬性文件,我建議你從你的類路徑中將它作爲ResourceBundle

E.g.說你把你的屬性文件的位置:

ResourceBundle props = ResourceBundle.getBundle("MyProperties"); 

或者作爲Properties對象:

Properties props = new Properties(); 
InputStream is = getClass().getResourceAsStream("MyProperties"); 
props.load(is); 
is.close(); 
+0

非常感謝。我將properties文件更改爲提及的位置,現在它正在工作。謝謝 – Nila 2011-03-22 12:08:24

1

如果你想讀的屬性在你的包文件,那麼你應該使用 -

InputStream is = pageContext.getServletContext().getResourceAsStream("/props/env- props.properties"); 
BufferedReader reader = new BufferedReader(is); 

得到buferred讀者,你可以操縱它,只要你想後。這樣你真的不需要servlet和web應用程序的路徑。上述方法將在類路徑中查找資源。

相關問題