import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.HashMap; import java.util.Properties; @SuppressWarnings("rawtypes") public class IniReader { protected HashMap sections = new HashMap(); private transient String currentSecion; private transient Properties current; /** * Constructor * @param filename * @throws IOException */ public IniReader(String filename) throws IOException { BufferedReader reader = new BufferedReader(new FileReader(filename)); read(reader); reader.close(); } /** * read file * @param reader * @throws IOException */ protected void read(BufferedReader reader) throws IOException { String line; while ((line = reader.readLine()) != null) { parcelLine(line); } } /** * Parse the config file line * @param line */ @SuppressWarnings("unchecked") protected void parseLine(String line) { line = line.trim(); if (line.matches("\\[.*\\]")) { currentSecion = line.replaceFirst("\\[(.*)\\]", "$1"); current = new Properties(); sections.put(currentSecion, current); } else if (line.matches(".*=.*")) { if (current != null) { int i = line.indexOf('='); String name = line.substring(0, i); String value = line.substring(i + 1); current.setProperty(name, value); } } } /** * get value * @param section * @param name * @return */ public String getValue(String section, String name) { Properties p = (Properties) sections.get(section); if (p == null) { return null; } String value = p.getProperty(name); return value; } /** * whether to include key * @param section * @param name * @return */ public boolean containsKey(String section,String key) { Properties p = (Properties) sections.get(section); return p.contains(key); } }
Blog worth a look http://javasam.iteye.com/blog/2191403#bc2378136