2012-10-17 108 views
2

我試圖設置屬性文件中讀取的java中oozieclient的屬性。屬性文件有10個奇怪的屬性。有沒有辦法可以一次設置這些屬性,而不必從文件中讀取每個鍵值對,然後將它們設置爲oozieclient在java中一次性設置屬性文件中的所有屬性

OozieClient wc = new OozieClient(http://something:1100/oozie); 

Properties conf = wc.createConfiguration(); 
conf.setProperty("jobTracker",....); 
conf.setProperty("nameNode",......); 
. 
. 
. 

取而代之的是,有沒有辦法,其中從屬性文件我可以閱讀這些價值和一次性設置所有的值?

回答

3

可以讀取另一個屬性文件和合並兩個:

OozieClient wc = new OozieClient("http://something:1100/oozie"); 

Properties conf = wc.createConfiguration(); 
Properties p = new Properties(); 
FileInputStream fis = new FileInputStream("myfile.properties"); 
p.load(fis); 
conf.putAll(p); 
fis.close(); // you still need to close the stream 

隨着文件myfile.properties,如:

jobTracker=foo 
nameNode=bar 

Javadoc for Properties

0

檢查看看了以下API:Oracle Docs。對Properties的load()操作可以被賦予對.properties FileInputSteam或FileInputReader的引用,它會將所有的鍵值對讀出到你的Properties對象中。