java读写ini源代码,JAVA读写INI资料,亲测

JAVA读写INI文件,亲测

代码如下:

package com.zte.anyservice.isg.uniportal.configuration.util.file;

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文件操作

*

* @author

* @date 2011-12-1 上午07:58:57

*

* @version 1.0

*/

public class IniFile

{

private static String RN = "\r\n";

/**

* 从ini配置文档中读取变量的值

*

* @param file

* 配置文档的路径

* @param section

* 要获取的变量所在段名称

* @param variable

* 要获取的变量名称

* @param defaultValue

* 变量名称不存在时的默认值

* @return 变量的值

* @throws IOException

* 抛出文档操作可能出现的io异常

*/

public static String getProfileString(String file, String section, String variable, String defaultValue)

throws IOException

{

String strLine, valueString = "";

BufferedReader bufferedReader = new BufferedReader(new FileReader(file));

boolean isInSection = false;

try

{

while ((strLine = bufferedReader.readLine()) != null)

{

// 读取INI文件到内存

strLine = strLine.trim();

Pattern p;

Matcher m, m2;

p = Pattern.compile("\\[\\s*" + section + "\\s*\\]");

Pattern p2 = Pattern.compile("\\[.*\\]");

m = p.matcher((strLine));

m2 = p2.matcher((strLine));

if (m2.find())

{

if (m.find())

{

isInSection = true;

} else

{

isInSection = false;

}

}

if (isInSection == true)

{

strLine = strLine.trim();

String[] strArray = strLine.split("=");

if (strArray.length == 2)

{

valueString = strArray[0].trim();

if (valueString.equalsIgnoreCase(variable))

{

valueString = strLine.substring(strLine.indexOf("=") + 1).trim();

return valueString;

}

}

}

}

} catch (Exception e)

{

// TODO: handle exception

} finally

{

bufferedReader.close();

}

return defaultValue;

}

/**

* 修改ini配置文档中变量的值

*

* @param file

* 配置文档的路径

* @param section

* 要修改的变量所在段名称

* @param variable

* 要修改的变量名称

* @param value

* 变量的新值

* @throws IOException

* 抛出文档操作可能出现的io异常

*/

public static boolean setProfileString(String file, String section, String variable, String value)

throws IOException

{

String fileContent, allLine;

BufferedReader bufferedReader = new BufferedReader(new FileReader(file));

boolean isInSection = false;

fileContent = "";

try

{

while ((allLine = bufferedReader.readLine()) != null)

{

allLine = allLine.trim();

Pattern p;

Matcher m, m2;

p = Pattern.compile("\\[\\s*" + section + "\\s*\\]");

Pattern p2 = Pattern.compile("\\[.*\\]");

m = p.matcher((allLine));

m2 = p2.matcher((allLine));

if (m2.find())

{

if (m.find())

{

isInSection = true;

} else

{

isInSection = false;

}

}

if (isInSection == true)

{

String[] strArray = allLine.split("=");

if (allLine.indexOf("=") > 0)

{

String valueString = strArray[0].trim();

if (valueString.equalsIgnoreCase(variable))

{

String newLine = valueString + "=" + value;

fileContent += " " + newLine + RN;

} else

{

fileContent += " " + allLine + RN;

}

} else

{

fileContent += allLine + RN;

}

} else

{

if (allLine.indexOf("=") > 0)

{

fileContent += " " + allLine + RN;

} else

{

fileContent += allLine + RN;

}

}

}

// System.out.println(fileContent);

BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(file, false));

bufferedWriter.write(fileContent);

bufferedWriter.flush();

bufferedWriter.close();

return true;

} catch (Exception e)

{

e.printStackTrace();

} finally

{

bufferedReader.close();

}

return false;

}

/**

*

* 说明

*

* @param args

* @author

* @date 2011-12-1 上午08:00:01

*/

public static void main(String[] args)

{

try

{

System.out.println("write!... "

+ IniFile.setProfileString("1.ini",

"GENERAL", "OPERATOR", "22"));

System.out.println("read!... "

+ IniFile.getProfileString("1.ini",

"GENERAL", "OPERATOR", ""));

} catch (IOException e)

{

System.out.println(e.toString());

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值