📄 configutil.java
字号:
package com.asiainfo.ainx.slaconf.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Iterator;
import java.util.Properties;
public class ConfigUtil {
private Properties prop = null;
private static ConfigUtil singleton = null;
// 配置文件路径
private static String strFileName ;
private static String home;
static{
home = System.getProperty("user.home");
strFileName = home + File.separator + "etc"
+ File.separator + "report.properties";
}
/**
* 私有构造函数,不允许其他类用new方法获得实例
*
*/
private ConfigUtil() {
}
/**
* 获得该类的实例,如果静态实例不为空则返回,为空则创建,保证为单例
*
* @return
*/
public static synchronized ConfigUtil getInstance() {
if (singleton == null) {
singleton = new ConfigUtil();
}
return singleton;
}
/**
* 用配置文件为类成员变量prop赋值
*
*/
private void loadConfig() {
if (prop == null)
prop = new Properties();
try {
File filez = new File(strFileName);
if(filez.exists()){
FileInputStream input = new FileInputStream(filez);
prop.load(input);
input.close();
changeHomeToRealpath(prop);
}
else{
createDefaultConfigFile();
}
} catch (FileNotFoundException fnfe) {
System.out.println("指定文件未找到");
} catch (IOException ioe) {
System.out.println("发生io异常");
}
}
private void createDefaultConfigFile(){
}
/**
* 根据传来的key值返回相应的属性值
*
* @param key
* @return
*/
public static String getProperty(String key) {
if(getInstance().prop == null)
getInstance().loadConfig();
return getInstance().prop.getProperty(key);
}
public static Properties getAllProperty(){
if(getInstance().prop == null)
getInstance().loadConfig();
return getInstance().prop;
}
/**
* 如果配置文件中指定了"{$HOME}",含义为当前用户的HOME,则替换该路径为绝对路径。
*/
private void changeHomeToRealpath(Properties oraProp){
for (Iterator iter = oraProp.keySet().iterator(); iter.hasNext();) {
String key = (String) iter.next();
oraProp.put(key, replaceHome(oraProp.getProperty(key)));
}
}
private String replaceHome(String str){
String reval = str;
if (reval.indexOf("{$HOME}") != -1) {
StringBuffer strbLine = new StringBuffer(reval);
StringBuffer resultLine = strbLine.replace(
reval.indexOf("{$HOME}"),
reval.indexOf("{$HOME}") + 7, home);
reval = resultLine.toString();
if (reval.indexOf("\\") != -1) {
reval = reval.replace('\\',File.separatorChar);
}
if (reval.indexOf("/") != -1) {
reval = reval.replace('/',File.separatorChar);
}
}
//如果设置的路径以文件分隔符结尾,则去除该字段。
reval = reval.trim();
if(reval.endsWith(File.separator))
reval = reval.substring(0, reval.length()-2);
return reval;
}
public static void main(String[] args) {
ConfigUtil test = ConfigUtil.getInstance();
System.out.println(test.getProperty("uploaddir"));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -