2016-12-02 84 views
0

希望有人能夠提供幫助,我在java中比較新,並試圖解決如何使用properties函數來讀取多個屬性值,而不一定按順序或全部列表,然後將它們放入數組或字符串中,這樣我就可以傳遞給另一個類來執行寫入文件等「內容」。有可能有數百個屬性值,只想挑選我想要的。 我可以得到一個像properties.getProperty(「ip」);並分配到一個字符串,但具有多個按照下面的問題...將多個java屬性值讀入字符串或數組

任何幫助將不勝感激。

Properties properties = new Properties(); 

try { 
    properties.load(new FileInputStream(args[0])); 
} 
catch (IOException e) { 
    System.out.println("Error - IOException - File not found..."); 
} 

String model = properties.getProperty("model"); 
String codeLevel = properties.getProperty("codeLvl"); 

String[] dmdCommand = new String[properties.getProperty("ip") 
     + properties.getProperty("rangeS") 
     + properties.getProperty("rangeL") 
     + properties.getProperty("PhyPG") 
     + properties.getProperty("PhyLDEV") 
     + properties.getProperty("PhyProc") 
     + properties.getProperty("PhyExG") 
     + properties.getProperty("PhyExLDEV") 
     + properties.getProperty("PhyCMPK")]; 

如果您需要其他信息或數據樣本,我們樂意提供。 歡呼聲,並提前致謝:)

+1

考慮使用https://docs.oracle.com/javase/7/docs/api/java/util/PropertyResourceBundle.html –

回答

1

如果您知道屬性的「鍵」,則可以使用字符串的ArrayList來存儲屬性。

例如:

List<String> propertyList = new ArrayList<String>(); 
propertyList.add(properties.getProperty("rangeS")); 

在這裏,我假設你不知道你要多少個鍵,從特性,因此撿到使用ArrayList的建議,但如果你知道要選擇的鍵的數量,你應該使用一個字符串數組。

例如

String[] propertyArray = new String[limit]; 

for(int i=0;i<limit;i++){ 
    propertyArray[i]= new String(properties.getProperty(myKey)); 
} 

在這裏, 「的myKey」 可以被編碼爲動態變化。

+0

謝謝阿提特,我認爲這應該工作,並將需要使用已知和未知的數目鍵。對於你的「myKey」被編碼的建議,你會怎麼做,因爲for循環會一遍又一遍地遍歷它? – Graham

+0

你可以給每一次迭代的方法調用或類似的東西。 我的意思是鍵必須來自某個地方,它們也可以是用戶輸入,或者可以從另一個文件中讀取。 一旦你得到一個新的字符串,你可以簡單地將其設置爲「myKey」變量並使用它。 –