|
@@ -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<>();
|
|
|
|
+ }
|
|
|
|
+}
|