zouxuan пре 5 година
родитељ
комит
9e7fad76d3

+ 41 - 0
mec-util/src/main/java/com/ym/mec/util/excel/IniFileEntity.java

@@ -0,0 +1,41 @@
+package com.ym.mec.util.excel;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+public class IniFileEntity {
+
+	private String section;
+
+	private String key;
+
+	private String value;
+
+	public String getSection() {
+		return section;
+	}
+
+	public void setSection(String section) {
+		this.section = section;
+	}
+
+	public String getKey() {
+		return key;
+	}
+
+	public void setKey(String key) {
+		this.key = key;
+	}
+
+	public String getValue() {
+		return value;
+	}
+
+	public void setValue(String value) {
+		this.value = value;
+	}
+	
+	@Override
+	public String toString() {
+		return ToStringBuilder.reflectionToString(this);
+	}
+}

+ 83 - 0
mec-util/src/main/java/com/ym/mec/util/excel/IniFileUtil.java

@@ -0,0 +1,83 @@
+package com.ym.mec.util.excel;
+
+import com.ym.mec.util.exception.UtilException;
+import org.ini4j.Ini;
+import org.ini4j.InvalidFileFormatException;
+import org.ini4j.Profile.Section;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.*;
+import java.util.Map.Entry;
+
+public class IniFileUtil {
+
+    /**
+     * 读取Ini文件
+     *
+     * @param iniFile 文件绝对路径(文件编码须UTF-8)
+     * @return 返回所有section以及下面的key/value
+     * @throws InvalidFileFormatException
+     * @throws IOException
+     */
+    public static Map<String, List<IniFileEntity>> readIniFile(File iniFile) throws InvalidFileFormatException, IOException {
+        if (!iniFile.exists()) {
+            throw new UtilException("文件[" + iniFile.getAbsolutePath() + "]不存在");
+        }
+        Ini ini = new Ini();
+        ini.load(iniFile);
+
+        Map<String, List<IniFileEntity>> result = new HashMap<String, List<IniFileEntity>>();
+        IniFileEntity entity = null;
+
+        Collection<Section> sections = ini.values();
+        for (Section section : sections) {
+            List<IniFileEntity> entryList = result.get(section.getName());
+            if (entryList == null) {
+                entryList = new ArrayList<IniFileEntity>();
+            }
+            for (Entry<String, String> entry : section.entrySet()) {
+                entity = new IniFileEntity();
+                entity.setSection(section.getName());
+                entity.setKey(entry.getKey());
+                entity.setValue(entry.getValue());
+
+                entryList.add(entity);
+            }
+            result.put(section.getName(), entryList);
+        }
+
+        return result;
+    }
+
+
+    /**
+     * 读取Ini文件
+     *
+     * @param inputStream
+     * @return 返回所有section以及下面的key/value
+     * @throws InvalidFileFormatException
+     * @throws IOException
+     */
+    public static Map<String,String> readIniFile(InputStream inputStream) throws InvalidFileFormatException, IOException {
+        Ini ini = new Ini();
+        try {
+            ini.load(inputStream);
+        } catch (Exception e) {
+            throw new UtilException(e.getMessage());
+        } finally {
+            inputStream.close();
+        }
+
+        Collection<Section> sections = ini.values();
+        for (Section section : sections) {
+            Map<String,String> map = new HashMap<>(section.entrySet().size());
+            for (Entry<String, String> entry : section.entrySet()) {
+                map.put(entry.getKey(),entry.getValue());
+            }
+            return map;
+        }
+        return new HashMap<>();
+    }
+}