code: public static void loadLineReader(LineReader lr, KeyValueLoader loader) throws IOException {
          char[] convtBuf = new char[1024];
          int limit;
          int keyLen;
          int valueStart;
          char c;
          boolean hasSep;
          boolean precedingBackslash;
  
          while ((limit = lr.readLine()) >= 0) {
              c = 0;
              keyLen = 0;
              valueStart = limit;
              hasSep = false;
  
              //System.out.println("line=<" + new String(lineBuf, 0, limit) + ">");
              precedingBackslash = false;
              while (keyLen < limit) {
                  c = lr.lineBuf[keyLen];
                  //need check if escaped.
                  if ((c == '=' ||  c == ':') && !precedingBackslash) {
                      valueStart = keyLen + 1;
                      hasSep = true;
                      break;
                  }
                  // Android-changed: use of Character.isWhitespace(c) b/25998006
                  else if (Character.isWhitespace(c) && !precedingBackslash) {
                      valueStart = keyLen + 1;
                      break;
                  }
                  if (c == '\\') {
                      precedingBackslash = !precedingBackslash;
                  } else {
                      precedingBackslash = false;
                  }
                  keyLen++;
              }
              while (valueStart < limit) {
                  c = lr.lineBuf[valueStart];
                  // Android-changed: use of Character.isWhitespace(c) b/25998006
                  if (!Character.isWhitespace(c)) {
                      if (!hasSep && (c == '=' ||  c == ':')) {
                          hasSep = true;
                      } else {
                          break;
                      }
                  }
                  valueStart++;
              }
              String key = loadConvert(lr.lineBuf, 0, keyLen, convtBuf);
              String value = loadConvert(lr.lineBuf, valueStart, limit - valueStart, convtBuf);
              loader.load(key, value);
          }
      }
docs: Loads properties using a key/value loader. This allows properties files to be
  parsed the same way as for for Properties classes, but key/value pairs can be
  stored independently.
  
  @hide internal use only