There are many ways to do this; others have mentioned that java.util.Properties gets most of the job done, and is probably the most robust solution.
One other option is to use a java.util.Scanner.
Here's an example that scans a String for simplicity:
String text = "#Hi, this is a sample file.\n" + "\n" + "\"abcd\" = 12; \r\n" + "\"abcde\"=16;\n" + " # \"ignore\" = 13;\n" + "\"http\" = 32; # Comment here \r" + "\"zzz\" = 666; # Out of order! \r" + " \"sip\" = 21 ;"; System.out.println(text); System.out.println("----------"); SortedMap<String,Integer> map = new TreeMap<String,Integer>(); Scanner sc = new Scanner(text).useDelimiter("[\"=; ]+"); while (sc.hasNextLine()) { if (sc.hasNext("[a-z]+")) { map.put(sc.next(), sc.nextInt()); } sc.nextLine(); } System.out.println(map);
This prints (as seen on ideone.com):
#Hi, this is a sample file. "abcd" = 12; "abcde"=16; # "ignore" = 13; "http" = 32; # Comment here "zzz" = 666; # Out of order! "sip" = 21 ; ---------- {abcd=12, abcde=16, http=32, sip=21, zzz=666}
Related questions
See also