For my program I want to read a key from a properties file and an associated List of values for the key.
Recently I was trying like that
public static Map<String,List<String>>categoryMap = new Hashtable<String, List<String>>(); Properties prop = new Properties(); try { prop2.load(new FileInputStream(/displayCategerization.properties)); Set<Object> keys = prop.keySet(); List<String> categoryList = new ArrayList<String>(); for (Object key : keys) { categoryList.add((String)prop2.get(key)); LogDisplayService.categoryMap.put((String)key,categoryList); } System.out.println(categoryList); System.out.println("Category Map :"+LogDisplayService.categoryMap); keys = null; prop = null; } catch (Throwable e) { e.printStackTrace(); }
and my properties file is like below -
A=APPLE A=ALPHABET A=ANT B=BAT B=BALL B=BUS
I want for key A there should be a list which contain [APPLE, ALPHABET,ANT]
and B contain [BAT,BALL,BUS]
.
So Map should be like this {A=[APPLE, ALPHABET,ANT], B=[BAT,BALL,BUS]}
but I get {A=[ANT], B=[BUS]}
I searched on the internet for such a way but found nothing. I wish there should be a way. Any help?
Our key. properties file is in flutter_app/android/key. properties .
Try writing the properties as a comma separated list, then split the value after the properties file is loaded. For example
a=one,two,three b=nine,ten,fourteen
You can also use org.apache.commons.configuration and change the value delimiter using the AbstractConfiguration.setListDelimiter(char) method if you're using comma in your values.
The comma separated list option is the easiest but becomes challenging if the values could include commas.
Here is an example of the a.1, a.2, ... approach:
for (String value : getPropertyList(prop, "a")) { System.out.println(value); } public static List<String> getPropertyList(Properties properties, String name) { List<String> result = new ArrayList<String>(); for (Map.Entry<Object, Object> entry : properties.entrySet()) { if (((String)entry.getKey()).matches("^" + Pattern.quote(name) + "\\.\\d+$")) { result.add((String) entry.getValue()); } } return result; }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With