2013-03-08 59 views
0

如果我有以下的目錄結構,參考屬性文件src目錄以外

+ SRC
++ com.foo.util
+++ FooProperties.java
+ foo.properties

我如何在FooProperties中將foo.properties作爲資源流?我試着將它添加到類路徑和引用它是這樣,

FooProperties.class.getResourceAsStream("/foo.properties") 

但我得到一個NullPointerException。我究竟做錯了什麼?

+0

把它放在'/ src'裏面。如果你不這樣做,我認爲你必須硬編碼。 – 2013-03-08 15:52:59

+0

'/ foo.properties'表示文件位於類路徑的根目錄下。如果它不在calsspath中,則需要提供絕對路徑。 – 2013-03-08 15:54:12

回答

3

如果你想保持properties文件src(同一水平src)之外,那麼你可以用這種方式獲取您的properties文件: -

try { 
    InputStream fileStream = new FileInputStream(new File(
      "test.properties")); 
    Properties props = new Properties(); 
    props.load(fileStream); 
    String myPropValue = (String) props.get("test.prop"); 
    System.out.println(myPropValue); 
} catch (FileNotFoundException e) { 
} catch (IOException e) { 
} 

希望它能幫助。您甚至可以使用上述方法編輯屬性文件(不需要絕對路徑)。