2016-07-29 18 views
-2

私はINIファイルをini4jで読み込もうとしています。フォーマットは、私は私の出力としてnull取得していますIniファイルをJavaで解析する

[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() +  "\""); 
} 

です。私は静的に値を渡すと

私はすなわち

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

が期待される出力を与えている、私の適切な出力を取得しています。
動的に値を渡す際の問題は何ですか?

+0

あなたは確信していますか?confFile.get( "header"、 "value") 'はnullを返しません? 'confFile.get(" header "、" key ")'が 'value'を返すことを期待しています。 – Andreas

答えて

2

もちろん、nullとなります。セクションheaderには、"key"という名前のオプションはありません(追加した引用符に注意してください)。

(あなたは自分のキーなしで値をダンプしたいと思いますなぜ私を超えているが)あなただけのセクション内のすべての値をダンプしたい場合は、次の操作を行います。

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

関連する問題