public String getProfileString( String file, String section, String variable, String defaultValue,Logger log) throws IOException
{
String strLine, value = "";
BufferedReader bufferedReader = null;
try
{
bufferedReader = new BufferedReader(new FileReader(file));
boolean isInSection = false;
Pattern p;
Matcher m;
while ((strLine = bufferedReader.readLine()) != null)
{
strLine = strLine.trim();
strLine = strLine.split("[;]")[0];
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(IOException e)
{
log.error("读取配置文件出错"+e.toString());
e.printStackTrace();
} finally {
bufferedReader.close();
}
return defaultValue;
}