| 
					
				 | 
			
			
				@@ -2,6 +2,7 @@ package com.keao.edu.util.iniFile; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.io.File; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.io.IOException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.io.InputStream; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.ArrayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.Collection; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.HashMap; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -17,45 +18,88 @@ 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)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 读取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, List<IniFileEntity>> 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(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        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)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |