docs: public void read(@WillClose InputStream in) throws IOException, PropertyDatabaseFormatException {
          BufferedReader reader = null;
  
          try {
              reader = new BufferedReader(Util.getReader(in));
              String line;
              while ((line = reader.readLine()) != null) {
                  line = line.trim();
                  if ("".equals(line)) {
                      continue;
                  }
                  int bar = line.indexOf('|');
                  if (bar < 0) {
                      throw new PropertyDatabaseFormatException("Invalid property database: missing separator");
                  }
                  KeyType key = parseKey(line.substring(0, bar));
                  ValueType property = decodeProperty(line.substring(bar + 1));
  
                  setProperty(key, property);
              }
          } finally {
              try {
                  if (reader != null) {
                      reader.close();
                  }
              } catch (IOException e) {
                  // Ignore
              }
          }
      }