直接上代码:
import java.io.InputStream;
import java.util.Properties;
public class ReadProperties {
static private String driver = null;
static private String url = null;
static private String user = null;
static private String password = null;
static{
loads();
}
synchronized static public void loads(){
if(driver == null || url == null || user == null || password == null){
InputStream is = ReadProperties.class.getResourceAsStream("/db.properties");
Properties dbproperties = new Properties();
try {
dbproperties.load(is);
driver = dbproperties.getProperty("driver").toString();
url = dbproperties.getProperty("url").toString();
user = dbproperties.getProperty("user").toString();
password = dbproperties.getProperty("password").toString();
}
catch (Exception e) {
System.err.println("不能读取属性文件. " + "请确保db.properties在CLASSPATH指定的路径中");
}
}
}
public static String getDriver() {
if(driver==null)
loads();
return driver;
}
public static String getUrl() {
if(url==null)
loads();
return url;
}
public static String getUser() {
if(user==null)
loads();
return user;
}
public static String getPassword() {
if(password==null)
loads();
return password;
}
}
这个方法不仅能够缓存配置文件内容,还能够做到自动加载配置文件的内容到内存,使用者完全不用考虑手动加载的过程,只需要在需要用到的地方直接调用ReadProperties的get方法[例:String url = ReadProperties.getgetUrl()]就可以了(因为是静态方法,不用创建对象),这样如果内存中有缓存,函数就会直接读取内存中的数据,节省时间,如果没有缓存系统也会自动加载