计算机二级

3773考试网计算机等级考试计算机二级正文

Java读取和修改ini配置文件方法

来源:fjzsksw.com 2010-7-19 14:43:53

 

/*

  * ConfigurationFile.java

  *

  * Created on 2009年4月15日, 下午1:36

  *

  * To change this template, choose Tools | Template Manager

  * and open the template in the editor.

  */

  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("\\["+section+"\\]");

  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("=");

  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;

  }

 

[1] [2] 下一页

触屏版 电脑版
3773考试网 琼ICP备12003406号-1