2016-07-29 18 views
-2

Ich versuche INI-Datei mit Ini4j lesen. Das Format istIni-Datei Parsing in 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() +  "\""); 
} 

Ich null als meine Ausgabe zu bekommen.

Wenn ich den Wert übergeben statisch ich meine richtigen Ausgang bekommen, das heißt

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

ist die erwartete Ausgabe geben.
Was ist das Problem hier, um Werte dynamisch zu übergeben?

+0

Sind Sie * sicher * 'confFile.get (" header "," value ")' gibt 'null' nicht zurück? Ich würde 'confFile.get (" header "," key ") erwarten, um' value' zurückzugeben. – Andreas

Antwort

2

Natürlich erhalten Sie null. Es gibt keine Option in Abschnitt header mit dem Namen "key" (beachten Sie die von Ihnen hinzugefügten Anführungszeichen).

Wenn Sie nur alle Werte in einem Abschnitt entleeren wollen (obwohl, warum Sie ohne ihre Schlüssel-Werte-Dump wollen würde ist mir schleierhaft), dies zu tun:

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

Wenn Sie tatsächlich drucken möchten die Schlüssel zu (macht mehr Sinn), so folgt aus:

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

Aufruf confFile.get("header", key), wenn Sie bereits den Wert haben, ist nicht der richtige Weg zu gehen.

+0

Ja, das Problem war mit den Zitaten, ich entfernte sie und es hat gut funktioniert. Ich brauchte nur die Werte eines bestimmten Schlüssels, und der Schlüssel wurde woanders abgebildet – Srikar