您好,欢迎来到站长目录(28sn.com)!


java 读写 ini配置文件

来源:网络整理 浏览:256次 时间:2020-03-29


代码

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;在线管理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


推荐站点

  • 我爱发烧音乐我爱发烧音乐

    我爱发烧音乐囊括了从流行音乐到古典音乐多个类型的音乐作品,专栏推荐最新的音乐,提供音乐排名榜单!可供免费线上收听音乐,歌曲流畅,音效极佳! 网站提供的钢琴以及二胡专栏,可供收听者,陶冶情操,改善心情,是难得的轻音乐典藏!

    www.520fs.com
  • 世纪音乐网世纪音乐网

    世纪音乐网是专业的在线音乐试听MP3下载网站。歌曲总计30余万首,收录了网上最新歌曲和流行音乐,DJ舞曲,非主流音乐,经典老歌,劲舞团歌曲,搞笑歌曲,儿童歌曲,英文歌曲等。是您上网听歌的最佳网站。

    www.ssjj.com
  • 怒江大峡谷网怒江大峡谷网

    怒江大峡谷网内容包括:新闻、要闻、怒江报、视频、文化、民俗、人文、音乐、政务、公告、政策等地方信息。

    www.nujiang.cn
  • 杭州网杭州网

      杭州网是杭州地区唯一的新闻门户网站,由中共杭州市委宣传部、杭州日报报业集团和杭州广播电视集团共同组建的杭州网络传媒有限公司运营。

    www.hangzhou.com.cn
  • 深圳在线深圳在线

      深圳在线 www.szol.net是深圳本地最大、最早的地方生活资讯网站之一,网站名“深圳在线www.szol.net”由南方报业传媒集团编辑委员会总编辑、南方日报社总编辑、南方都市报总编辑、南方书画院名誉院长王春芙亲笔题名,深圳在线www.szol.net团队与深圳热线www.szonline.net、奥一网www.oeeee.com都源于全国最早成立于1996年的知名网络公司——深圳万用网。

    www.szol.net

鄂公网安备 42062502000001号