2016-01-04 2 views
2

Я новичок в ini4j API http://mvnrepository.com/artifact/org.ini4j/ini4j. У меня есть требование, если если пройти key как CT, тогда он должен проверить все section и заполнить пару значений ключа в Java Map (например, 10 = CT, 11 = CT и т. Д.). Как мы можем это сделать?ini4j API - прочитать все ключи раздела и создать его карту

Города не установлены, это может быть много городов. Здесь я показал только 4.

Моего widget.ini

[CapeTown] 
10=CT 
11=CT 
12=CT 
13=JO 
14=JO 
15=CT 
17=WN 

[Wonderers] 
21=CT 
22=JO 
23=WN 
24=JO 
25=CT 
26=CT 
27=CT 

[Johanbege] 
30=CT 
31=CT 
32=JO 
33=JO 
34=CT 
35=CT 
36=WN 

[Durban] 
40=CT 
41=CT 
42=JO 
43=JO 
44=CT 
45=CT 
46=WN 

Код я начал:

public class CityReader { 
    public static void main(String[] args) throws InvalidFileFormatException, IOException { 
     File file = new File("src/main/resources/widget.ini"); 
     Ini ini = new Ini(file); 

    } 
} 

ответ

1

Я разработал что-то для вас. Надеюсь, это решит вашу проблему.

import java.io.File; 
import java.io.IOException; 
import java.util.HashMap; 
import java.util.Map; 

import org.ini4j.Ini; 
import org.ini4j.InvalidFileFormatException; 
import org.ini4j.Profile.Section; 

public class CityReader { 
    public static void main(String[] args) throws InvalidFileFormatException, IOException { 
     Map<String, String> mapCT = new HashMap<String, String>(); 
     Map<String, String> mapJO = new HashMap<String, String>(); 

     File file = new File("src/main/resources/widget.ini"); 
     Ini ini = new Ini(file); 
     for (String sectionName: ini.keySet()) { 
      Section section = ini.get(sectionName); 
      for (String optionKey: section.keySet()) { 
       if(section.get(optionKey).equals("CT")) 
        mapCT.put(optionKey, section.get(optionKey)); 
       if(section.get(optionKey).equals("JO")) 
        mapJO.put(optionKey, section.get(optionKey)); 
      } 
     } 
     System.out.println(mapCT); 
     System.out.println(mapJO); 
    } 
} 

Если вы хотите сделать что-то динамичное, то используйте ниже:

public class CityReader { 
    public static void main(String[] args) throws InvalidFileFormatException, IOException { 
     File file = new File("src/main/resources/widget.ini"); 
     Ini ini = new Ini(file); 

     Map<String, String> mapkey = new HashMap<String, String>(); 

     List<String> key = new ArrayList<String>(); 
     key.add("CT"); 
     key.add("JO"); 

     for (String s : key) { 
      for (String sectionName: ini.keySet()) { 
       Section section = ini.get(sectionName); 
       for (String optionKey: section.keySet()) { 
        if(section.get(optionKey).equals(s)) 
         mapkey.put(optionKey, section.get(optionKey)); 
       } 
      } 
     } 
     System.out.println(mapkey); 
    } 
} 
Смежные вопросы