Converting a Java properties file to a Map (example)

At the moment I can't remember why I wrote this method to read a Java properties file and return it as a Map of key/value pairs ... but if for some reason you happen to need a Java method that reads a properties file and returns the contents as a Map, here's some free source code for you:

/**
 * Reads a "properties" file, and returns it as a Map 
 * (a collection of key/value pairs).
 * 
 * @param filename  The properties filename to read.
 * @param delimiter The string (or character) that separates the key 
 *                  from the value in the properties file.
 * @return The Map that contains the key/value pairs.
 * @throws Exception
 */
public static Map<String, String> readPropertiesFileAsMap(String filename, String delimiter)
throws Exception
{
  Map<String, String> map = new HashMap();
  BufferedReader reader = new BufferedReader(new FileReader(filename));
  String line;
  while ((line = reader.readLine()) != null)
  {
    if (line.trim().length()==0) continue;
    if (line.charAt(0)=='#') continue;
    // assumption here is that proper lines are like "String : http://xxx.yyy.zzz/foo/bar",
    // and the ":" is the delimiter
    int delimPosition = line.indexOf(delimiter);
    String key = line.substring(0, delimPosition-1).trim();
    String value = line.substring(delimPosition+1).trim();
    map.put(key, value);
  }
  reader.close();
  return map;
}

As I write this I'm still struggling to think of why I wrote a method to read a properties file and return it as a Java Map, but if I ever remember why I did this, I'll be glad to share my reasoning here, lol. In the meantime, if it serves as a Java Map example, I hope that is helpful.

As a final note, if you are looking for an example of how to normally read a Java properties file, here's a link to my "Java properties file example".

Add new comment

The content of this field is kept private and will not be shown publicly.

Anonymous format

  • Allowed HTML tags: <em> <strong> <cite> <code> <ul type> <ol start type> <li> <pre>
  • Lines and paragraphs break automatically.
By submitting this form, you accept the Mollom privacy policy.