java 操作 ini 配置文件

发布时间:2020-07-07 17:49:33 作者:fhspringcloud
来源:网络 阅读:209

代码

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


推荐阅读:
  1. 好程序员Java教程分享MySQL目录结构
  2. java 读写 ini配置文件

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

ini ava

上一篇:python连接mysql并执行SQL语句的方法

下一篇:网站管理后台帐号密码暴力破解方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》