public class GetProperties {
private static Properties config = null;
static {
InputStream in = GetProperties.class.getClassLoader()
.getResourceAsStream("default.properties");
config = new Properties();
try {
config.load(in);
in.close();
} catch (IOException e) {
System.out.println("No default.properties defined error!");
}
}
// 根据key读取value
public static String readValue(String key) {
try {
String value = config.getProperty(key);
return value;
} catch (Exception e) {
e.printStackTrace();
System.err.println("ConfigInfoError" + e.toString());
return null;
}
}
// 读取properties的全部信息
public static void readAllProperties() {
try {
@SuppressWarnings("rawtypes")
Enumeration en = config.propertyNames();
while (en.hasMoreElements()) {
String key = (String) en.nextElement();
String Property = config.getProperty(key);
System.out.println(key +": "+ Property);
}
} catch (Exception e) {
e.printStackTrace();
System.err.println("ConfigInfoError" + e.toString());
}
}
}
请大家帮我分析下 这样读取文件信息会不会有泄露的问题?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
泄漏什么呢?
另外 in.close() 要放在 finaly {} 块去执行
######那个close我改下位置!这段代码也不是我也写我在网上找的。
这个类会被频繁使用,使用的方式就是GetProperties.readValue("name"); 它是怎么工作的呢?jvm会不会每次都去创建这个类?还是每次都去加载这个.class文件,还是只加载一次!
######泄漏什么呢?
另外 in.close() 要放在 finaly {} 块去执行
泄漏什么呢?
另外 in.close() 要放在 finaly {} 块去执行