代碼
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;在線管理IPonlineIp=127.0.0.1;在線管理端口onlinePort=8869;信息提示音fhsmsSound=m1;郵箱服務器SMTPSMTP=smtp.126.com;郵箱服務器端口PORT=25;郵箱服務器郵箱EMAIL=wwww@126.com;郵箱服務器密碼PAW=234561;即時聊天IPimIp=127.0.0.1;即時聊天端口imPort=8879
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。