1.每一个 .class 文件都被加载到内存中,这是类加载器的功能。类加载器不但能加载.class文件,还能加载普通文件,例:
InputStream ips = ReflectHashCode.class.getClassLoader().getResourceAsStream(“cn/itcast/day1/config.properties”);
//在cn/itcase/day1 目录下查找 config.properties 文件
//通过类的class找到类加载器( getClassLoader() ), 然后用类加载器加载普通文件( getResourceAsStream(), 在classpath指定的目录下逐一的查找要加载的文件 )
配置文件都放在 存放类( .class)文件的目录下
2.class 本身也自带一种加载资源文件的方式,实际上是内部调用了classloader,例:
InputStream ips = ReflectHashCode.getResourceAsStream(“config.properties”);
只需要写要加载的配置文件的名字就可以,不需要写目录,相对路径,默认在自己所在的包下面查找。如果在所在包的子包下面,路径添加子包名称,例:resource/config.properties
还可以用绝对路径如果上例改为,cn/itcast/day1/config.properties 就成了绝对路径,默认从classpath的根目录下查找,这时候就要从根开始写上完整的绝对路径 ,希望对你有用。 |