代碼java
package org.fh.util; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 說明:ini文件讀寫操做工具類 * 官網:www.1b23.com */ public class IniFileUtil { /** * 從ini配置文件中讀取變量的值 * @param file 配置文件的路徑 * @param section 要獲取的變量所在段名稱 * @param variable 要獲取的變量名稱 * @param defaultValue 變量名稱不存在時的默認值 * @return 變量的值 * @throws IOException 拋出文件操做可能出現的io異常 */ public static String readCfgValue(String file, String section, String variable, String defaultValue) throws IOException { String strLine, value = ""; BufferedReader bufferedReader = new BufferedReader(new FileReader(file)); boolean isInSection = false; try { while ((strLine = bufferedReader.readLine()) != null) { strLine = strLine.trim(); strLine = strLine.split("[;]")[0]; Pattern p; Matcher m; p = Pattern.compile("\\[\\w+]");// Pattern.compile("file://[//s*.*//s*//]"); m = p.matcher((strLine)); if (m.matches()) { p = Pattern.compile("\\[" + section + "\\]");// Pattern.compile("file://[//s*" + section + // "file://s*//]"); m = p.matcher(strLine); if (m.matches()) { isInSection = true; } else { isInSection = false; } } if (isInSection == true) { strLine = strLine.trim(); String[] strArray = strLine.split("="); if (strArray.length == 1) { value = strArray[0].trim(); if (value.equalsIgnoreCase(variable)) { value = ""; return value; } } else if (strArray.length == 2) { value = strArray[0].trim(); if (value.equalsIgnoreCase(variable)) { value = strArray[1].trim(); return value; } } else if (strArray.length > 2) { value = strArray[0].trim(); if (value.equalsIgnoreCase(variable)) { value = strLine.substring(strLine.indexOf("=") + 1).trim(); return value; } } } } } finally { bufferedReader.close(); } return defaultValue; } /** * 修改ini配置文件中變量的值 * @param file 配置文件的路徑 * @param section 要修改的變量所在段名稱 * @param variable 要修改的變量名稱 * @param value 變量的新值 * @throws IOException 拋出文件操做可能出現的io異常 */ public static boolean writeCfgValue(String file, String section, String variable, String value) throws IOException { String fileContent, allLine, strLine, newLine; String getValue = null; BufferedReader bufferedReader = new BufferedReader(new FileReader(file)); boolean isInSection = false; boolean canAdd = true; fileContent = ""; try { while ((allLine = bufferedReader.readLine()) != null) { allLine = allLine.trim(); strLine = allLine.split(";")[0]; Pattern p; Matcher m; p = Pattern.compile("\\[\\w+]"); m = p.matcher((strLine)); if (m.matches()) { p = Pattern.compile("\\[" + section + "\\]"); m = p.matcher(strLine); if (m.matches()) { isInSection = true; } else { isInSection = false; } } if (isInSection == true) { strLine = strLine.trim(); String[] strArray = strLine.split("="); getValue = strArray[0].trim(); if (getValue.equalsIgnoreCase(variable)) { newLine = getValue + "=" + value; fileContent += newLine; while ((allLine = bufferedReader.readLine()) != null) { fileContent += "\r\n" + allLine; } bufferedReader.close(); canAdd = false; BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(file, false)); bufferedWriter.write(fileContent); bufferedWriter.flush(); bufferedWriter.close(); return true; } } fileContent += allLine + "\r\n"; } if (canAdd) { String str = variable + "=" + value; fileContent += str + "\r\n"; BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(file, false)); bufferedWriter.write(fileContent); bufferedWriter.flush(); bufferedWriter.close(); } } catch (IOException ex) { throw ex; } finally { bufferedReader.close(); } return false; } public static void main(String[] args) { try { /*;文件事例 [Client] ;客戶端版本號 version=0001 ;設備號 devNum=6405*/ String value = IniFileUtil.readCfgValue("L:/a.ini", "Client", "devNum", "1"); System.out.println(value); } catch (IOException e) { e.printStackTrace(); } } }
ini 配置文件服務器
;系統設置 [SysSet1] ;系統名稱 sysName=FH ;帶分頁的列表頁面,每頁條數 showCount=10 ;在線管理IP onlineIp=127.0.0.1 ;在線管理端口 onlinePort=8869 ;信息提示音 fhsmsSound=m1 ;郵箱服務器SMTP SMTP=smtp.126.com ;郵箱服務器端口 PORT=25 ;郵箱服務器郵箱 EMAIL=wwww@126.com ;郵箱服務器密碼 PAW=234561 ;即時聊天IP imIp=127.0.0.1 ;即時聊天端口 imPort=8879