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 {} 块去执行
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。