2016-07-29 1 views
-2

J'essaie de lire le fichier INI en utilisant ini4j. Le format estAnalyse du fichier Ini en 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() +  "\""); 
} 

Je reçois null comme ma sortie.

Si je passe la valeur que je suis statiquement obtenir ma sortie appropriée, à savoir

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

est de donner le résultat attendu.
Quel est le problème ici pour transmettre des valeurs dynamiquement?

+0

Êtes-vous * sûr * 'confFile.get (" header "," value ")' ne retourne pas 'null'? Je m'attendrais à confFile.get ("header", "key") 'pour retourner' value'. – Andreas

Répondre

2

Bien sûr, vous obtenez null. Il n'y a pas d'option dans la section header nommée "key" (notez les citations que vous avez ajoutées).

Si vous voulez juste vider toutes les valeurs dans une section (bien pourquoi vous voulez vider les valeurs sans leurs clés est au-delà de moi), faites ceci:

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

Si vous voulez réellement imprimer les touches trop (plus de sens), donc ceci:

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

appel confFile.get("header", key), lorsque vous avez déjà la valeur, n'est pas la bonne façon de procéder.

+0

Oui le problème était avec les citations, je les ai enlevées et cela a fonctionné très bien. J'ai seulement besoin des valeurs d'une clé particulière, et la clé a été cartographiée ailleurs – Srikar