获取配置文件的两种方式区别
ClassLoader.getSystemClassLoader().getResourceAsStream()
//ClassLoader.getSystemClassLoader().getResourceAsStream("String pathName")
// 此种方式读取文件位置默认为src目录下(在main方法和在@Test方法中路径一样)
InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("Resource\\druid.properties");
//FileInputStream("String pathName")
// 在main方法中,此种方式读取文件位置默认为Project目录下
// 在@Test方法中,此种方式读取文件位置默认为Module目录下
FileInputStream is = new FileInputStream("JDBC\\src\\Resource\\druid.properties");
getResourceAsStream的区别
-
Class.getResourceAsStream(String path)
: path 不以’/'
开头时默认是从此类所在的包下取资源,以’/'
开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由ClassLoader获取资源。
-
Class.getClassLoader.getResourceAsStream(String path)
:默认则是从ClassPath根下获取,path不能以’/'
开头,最终是由ClassLoader获取资源。
-
ServletContext. getResourceAsStream(String path)
:默认从WebAPP根目录下取资源,Tomcat下path是否以’/'
开头无所谓。