java读取和修改ini配置文件
2011-08-01 14:19
609 查看
iLife's 博客http://blog.csdn.net/fei1502816
配置文件格式:
[TestSect1]
1001 = 111111
1002 = 222222
1003 = 333333
1004 = 444444
1005 = 555555
1006 = 666666
package mytools; 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 由月 * @version 2004-08-18 * @修改 2008-05-22 */ public final class ConfigurationFile { /** * 从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, 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("[url=file://[.*//]\\[.*\\]"); m = p.matcher((strLine)); if (m.matches()) { p = Pattern.compile("[url=file://[(.*)//]\\[(.*)\\]"); 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 setProfileString(String file, String section, String variable, String value) throws IOException { String fileContent, allLine, strLine, newLine, remarkStr; String getValue; BufferedReader bufferedReader = new BufferedReader(new FileReader(file)); boolean isInSection = false; fileContent = ""; try { while ((allLine = bufferedReader.readLine()) != null) { allLine = allLine.trim(); System.out.println("allLine == " + allLine); // if (allLine.split("[;]").length > 1) // remarkStr = ";" + allLine.split(";")[1]; // else // remarkStr = ""; // strLine = allLine.split(";")[0]; strLine = allLine; Pattern p; Matcher m; p = Pattern.compile("[url=file://[.*//]\\[.*\\]"); m = p.matcher((strLine)); if (m.matches()) { p = Pattern.compile("[url=file://[(.*)//]\\[(.*)\\]"); 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 + " " + remarkStr; newLine = getValue + " = " + value + " "; fileContent += newLine + "\r\n"; while ((allLine = bufferedReader.readLine()) != null) { fileContent += allLine + "\r\n"; } bufferedReader.close(); BufferedWriter bufferedWriter = new BufferedWriter( new FileWriter(file, false)); bufferedWriter.write(fileContent); bufferedWriter.flush(); bufferedWriter.close(); return true; } } fileContent += allLine + "\r\n"; } } catch (IOException ex) { throw ex; } finally { bufferedReader.close(); } return false; } /** * 程式测试 */ public static void main(String[] args) { // String value = Config.getProfileString("sysconfig.ini", "Option", // "OracleDB", "default"); // System.out.println(value); try { System.out.println("值已经改变!... " + ConfigurationFile.setProfileString( "F:/update/gamewww.ini", "TestSect1", "1001", "111111")); System.out.println("值读取成功!... " + ConfigurationFile.getProfileString( "F:/update/gamewww.ini", "TestSect1", "1001", "")); } catch (IOException e) { System.out.println("错误 ......" + e.toString()); } } }
配置文件格式:
[TestSect1]
1001 = 111111
1002 = 222222
1003 = 333333
1004 = 444444
1005 = 555555
1006 = 666666
相关文章推荐
- Java读取和修改ini配置文件
- java读取和修改ini配置文件实例代码
- java读取和修改ini配置文件
- Java读取和修改ini配置文件
- java读取和修改ini配置文件
- Java_读取INI配置文件
- java 4种方式读取配置文件 + 修改配置文件
- [Java]Ini配置文件的读取
- java 4种方式读取配置文件 + 修改配置文件
- java 4种方式读取配置文件 + 修改配置文件
- Java Properties 类读取和修改配置文件信息
- 2011-07-07 java读取ini配置文件
- 读取ini配置文件时,成员变量的内存数据被隐式修改了
- Java读取解析INI配置文件
- Python读取修改ini配置文件[ConfigParser]
- 使用java读取配置文件(ini、properties)
- JAVA中读取配置文件以及修改配置文件
- Java Properties 类读取和修改配置文件信息
- Python读取修改ini配置文件[ConfigParser]
- Java Properties 类读取和修改配置文件信息