版权声明: https://blog.csdn.net/jiangxuexuanshuang/article/details/88992044
解析Ini文件,返回对应的键值对
public class IniUtils {
private IniUtils () {}
public static Map<String, Map<String, String>> parseIni(String fileName) throws IOException {
InputStream in = null;
Map<String, Map<String, String>> iniMap = new HashMap<>();
try {
in = CannaStreamUtils.getInputStream(fileName);
List<String> configLineList = IOUtils.readLines(in);
String currentSection = null;
for (String line : configLineList) {
line = line.trim();
if (line.matches("\\[.*\\]")) {
currentSection = line.replaceFirst("\\[(.*)\\]", "$1");
} else if (line.matches(".*=.*")) {
Map<String, String> sectionMap = iniMap.getOrDefault(currentSection, new HashMap<>());
String[] itemArr = line.split("=");
sectionMap.put(itemArr[0], itemArr[1]);
iniMap.put(currentSection, sectionMap);
}
}
return iniMap;
} finally{
IOUtils.closeQuietly(in);
}
}
}