InputStream ips = new FileInputStream("config.properties");
Properties props = new Properties();
props.load(ips);
ips.close();
一定要用完整的路径,但完整的路径不是硬编码,而是运输出来的
获得资源文件的 第二种方式:(最常用的,但不能取代IO 的方式)
每一个 .class文件都被加载到内存中,这是类加载器的功能。类加载器不但能加载.class文件,还能加载普通文件,例:
InputStream ips =ReflectHashCode.class.getClassLoader().getResourceAsStream(“cn/itcast/day1/config.properties”);
//在cn/itcase/day1 目录下查找 config.properties文件
//通过类的class找到类加载器( getClassLoader() ),然后用类加载器加载普通文件( getResourceAsStream(), 在classpath指定的目录下逐一的查找要加载的文件)
配置文件都放在 存放类( .class)文件的目录下
获得资源文件的 第三种方式
class 本身也自带一种加载资源文件的方式,实际上是内部调用了classloader,例:
InputStream ips =ReflectHashCode.getResourceAsStream(“config.properties”);
只需要写要加载的配置文件的名字就可以,不需要写目录,相对路径,默认在自己所在的包下面查找。如果在所在包的子包下面,路径添加子包名称,例:resource/config.properties
还可以用绝对路径如果上例改为,cn/itcast/day1/config.properties 就成了绝对路径,默认从classpath的根目录下查找,这时候就要从根开始写上完整的绝对路径