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;
之后运行
此时第一句为找到的db.properties的地址输入缓冲流,第二句为连接的的数据库信息。
在过段时间之后再去使用此代码时输出报错空指针异常信息,原因是没有在之前加上in.close()语句。
所以一定要记得加close()语句