|
@@ -0,0 +1,61 @@
|
|
|
+package com.keao.edu.util.iniFile;
|
|
|
+
|
|
|
+import java.io.File;
|
|
|
+import java.io.IOException;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Collection;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Map.Entry;
|
|
|
+
|
|
|
+import org.ini4j.Ini;
|
|
|
+import org.ini4j.InvalidFileFormatException;
|
|
|
+import org.ini4j.Profile.Section;
|
|
|
+
|
|
|
+import com.keao.edu.util.exception.UtilException;
|
|
|
+
|
|
|
+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;
|
|
|
+ }
|
|
|
+
|
|
|
+ public static void main(String[] args) throws InvalidFileFormatException, IOException {
|
|
|
+ File file = new File("e:/test.ini");
|
|
|
+ System.out.println(IniFileUtil.readIniFile(file));
|
|
|
+ }
|
|
|
+}
|