设为首页 加入收藏

TOP

Java操作ini配置文件类
2014-11-16 15:40:33 来源: 作者: 【 】 浏览:20
Tags:Java 操作 ini 配置 文件

  import java.io.BufferedReader;


  import java.io.BufferedWriter;


  import java.io.FileNotFoundException;


  import java.io.FileReader;


  import java.io.FileWriter;


  import java.io.IOException;


  import java.util.logging.Level;


  import java.util.logging.Logger;


  import java.util.regex.Matcher;


  import java.util.regex.Pattern;


  /**


  * 配置文件操作类,用来读取和设置ini配置文件


  */


  public final class ConfigurationFile {


  private String fileName;


  public ConfigurationFile(String fileName) {


  this.fileName = fileName;


  }


  /**


  * 从ini配置文件中读取字符变量的值


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


  * @param variable 要获取的变量名称


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


  * @return 变量的字符型值


  */


  public String getProfileString(


  String section,


  String variable,


  String defaultValue) {


  BufferedReader bufferedReader = null;


  try {


  String strLine;


  String value = "";


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


  boolean isInSection = false;


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


  strLine = strLine.trim();


  strLine = strLine.split("[;]")[0];


  Pattern p;


  Matcher m;


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


  m = p.matcher(strLine);


  if (m.matches()) {


  p = Pattern.compile("\\[\\s*" + section + "\\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;


  }


  }


  }


  }


  } catch (FileNotFoundException ex) {


  Logger.getLogger(ConfigurationFile.class.getName()).log(Level.SEVERE, null, ex);


  } catch (IOException ex) {


  Logger.getLogger(ConfigurationFile.class.getName()).log(Level.SEVERE, null, ex);


  } finally {


  try {


  bufferedReader.close();


  } catch (IOException ex) {


  Logger.getLogger(ConfigurationFile.class.getName()).log(Level.SEVERE, null, ex);


  }


  }


  return defaultValue;


  }


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇在Java中使用DES加密解密算法 下一篇扑克牌游戏“算24”的程序解法

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: