溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java 讀寫 ini配置文件

發布時間:2020-07-02 16:46:52 來源:網絡 閱讀:373 作者:16521544193 欄目:編程語言


代碼

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文件讀寫操作工具類
?*?作者:FH?Admin
?*?官網:www.fhadmin.org
?*/
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?Admin
;帶分頁的列表頁面,每頁條數
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


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女