Java工具【十三】IniUtils

版权声明: 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);
        }
    }

}

猜你喜欢

转载自blog.csdn.net/jiangxuexuanshuang/article/details/88992044