docs: public boolean load(InputStream settingStream) throws IOException {
  		super.clear();
  		BufferedReader reader = null;
  		try {
  			reader = IoUtil.getReader(settingStream, charset);
  			// 分组
  			String group = null;
  			LinkedHashSet<String> valueSet = null;
  
  			while (true) {
  				String line = reader.readLine();
  				if (line == null) {
  					break;
  				}
  				line = line.trim();
  				// 跳过注释行和空行
  				if (StrUtil.isBlank(line) || line.startsWith(COMMENT_FLAG_PRE)) {
  					// 空行和注释忽略
  					continue;
  				} else if (line.startsWith(StrUtil.BACKSLASH + COMMENT_FLAG_PRE)) {
  					// 对于值中出现开头为#的字符串，需要转义处理，在此做反转义
  					line = line.substring(1);
  				}
  
  				// 记录分组名
  				if (line.charAt(0) == GROUP_SURROUND[0] && line.charAt(line.length() - 1) == GROUP_SURROUND[1]) {
  					// 开始新的分组取值，当出现重名分组时候，合并分组值
  					group = line.substring(1, line.length() - 1).trim();
  					valueSet = super.get(group);
  					if (null == valueSet) {
  						valueSet = new LinkedHashSet<String>();
  					}
  					super.put(group, valueSet);
  					continue;
  				}
  
  				// 添加值
  				if (null == valueSet) {
  					// 当出现无分组值的时候，会导致valueSet为空，此时group为""
  					valueSet = new LinkedHashSet<String>();
  					super.put(StrUtil.EMPTY, valueSet);
  				}
  				valueSet.add(line);
  			}
  		} finally {
  			IoUtil.close(reader);
  		}
  		return true;
  	}