readFileToHashMap static method

Map<String, String> readFileToHashMap(
  1. String filePath, {
  2. String separator = "=",
  3. bool valueFirst = false,
  4. Encoding encoding = utf8,
  5. dynamic saveMode = false,
})

Method to read a properties file into a hashmap.

Empty lines are ignored, as well as lines that do not contain the separator.

Implementation

static Map<String, String> readFileToHashMap(String filePath,
    {String separator = "=",
    bool valueFirst = false,
    Encoding encoding = utf8,
    saveMode = false}) {
  var fileTxt = readFile(filePath, encoding: encoding, saveMode: saveMode);
  var lines = fileTxt.split("\n");

  Map<String, String> propertiesMap = {};
  for (String line in lines) {
    line = line.trim();
    if (line.isEmpty) {
      continue;
    }
    int firstSep = line.indexOf(separator);
    if (firstSep == -1) {
      continue;
    }

    String first = line.substring(0, firstSep);
    String second = line.substring(firstSep + 1);

    if (!valueFirst) {
      propertiesMap[first] = second;
    } else {
      propertiesMap[second] = first;
    }
  }
  return propertiesMap;
}