2016-07-29 74 views
-2

我正在嘗試使用ini4j讀取INI文件。格式是在java中解析Ini文件

[header] 
key = value 
Ini confFile = new Ini(new File(filePath)); 
Map<String, String> technologyMap = confFile.get("header"); 

for (Map.Entry<String, String> techMap : technologyMap.entrySet()) { 
    System.out.println(confFile.get("header", "\"" + techMap.getKey() +  "\""); 
} 

我得到null作爲我的輸出。

如果我傳遞值靜態我得到我正確的輸出,即

System.out.println(confFile.get("header", "value"); 

時給出預期的輸出。
這裏有什麼問題來動態傳遞值?

+0

你確定*'confFile.get(「header」,「value」)'不返回'null'嗎?我期望'confFile.get(「header」,「key」)'返回'value'。 – Andreas

回答

2

當然你會得到null。在名爲"key"的部分header中沒有選項(請注意您添加的引號)。

如果你只是想轉儲一節中的所有值(但爲什麼你要轉儲值,而他們的鑰匙我是無法理解),這樣做:

for (String value : technologyMap.values()) { 
    System.out.println(value); 
} 

如果你真的想打印按鍵太(更有意義),所以這樣的:

for (Map.Entry<String, String> entry : technologyMap.entrySet()) { 
    System.out.println(entry.getKey() + ": " + entry.getValue()); 
} 

調用confFile.get("header", key),當你已經擁有了價值,是不正確的方式去。

+0

是的問題是與報價,我刪除他們,它工作正常。 我只需要一個特定的鍵值,而且鍵映射到別的地方 – Srikar