2021-03-13

InputStream in=Thread.currentThread().getContextClassLoader().getResourceAsStream一定要记得close()

在之前写了一个数据库连接的工具类测试,用ClassLoader类的getResource(String name),getResourceAsStream(String name)等方法,使用相对于当前项目的classpath的相对路径来查找资源。

而在第一次写此代码是数据连接正常` //读取文件
InputStream in = Thread.currentThread().getContextClassLoader().getResourceAsStream(“config/db.properties”);

    Properties proper=new Properties();
    proper.load(in);
    String url=proper.getProperty("url");
    String name=proper.getProperty("name");
    String password=proper.getProperty("password");
    String driver=proper.getProperty("Driver");
    Class.forName(driver);
    Connection connect = DriverManager.getConnection(url, name, password);
    System.out.println(connect);
    return connect;

之后运行

2021-03-13此时第一句为找到的db.properties的地址输入缓冲流,第二句为连接的的数据库信息。

在过段时间之后再去使用此代码时输出报错空指针异常信息,原因是没有在之前加上in.close()语句。

所以一定要记得加close()语句

上一篇:System.getProperty、PropConfig.loadConfig应用


下一篇:Java system.getProperty问题