package cn.sdut.reflectclass;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
/*
* 反射第六步 : 通过反射加载资源文件 三种方式
*
* properties是Hashtable的子类 也就是 键值都是Strin类型
* 建立一个source Folder 叫做 resource 里面存放 db.properties 文件 或者直接建在src下面 编译后 文件都会被放到字节码根目录下
* 文件内容:
* #key=value
* admin=root
* password=root
*
*/
public class RelfectDemo06 {
public static void main(String[] args) throws Exception {
Properties p = new Properties();
//第一种方式 :使用绝对路径
InputStream inputStream = new FileInputStream("C:/Users/Administrator/Desktop/ZXC/day0803/resource/db.properties");
//InputStream inputStream = new FileInputStream("resource/db.properties");
p.load(inputStream);
System.out.println(p);
//第二种方式 :使用类加载器 它会从字节码根目录下开始寻找文件 最常使用的方法
InputStream inputStream1 = null;
ClassLoader clo =Thread.currentThread().getContextClassLoader();//加载器可以是随便一个类来获得 RelfectDemo06.class.getClassLoader();也可以
inputStream1 = clo.getResourceAsStream("db.properties");
p.load(inputStream);
System.out.println(p);
//第三种方式 :使用class类的getResourceAsStream(String name) 它会从所在字节码目录下寻找文件
InputStream inputStream2 = RelfectDemo06.class.getResourceAsStream("db.properties");//此时 RelfectDemo06.class文件和db.properties文件在一个文件夹下面
p.load(inputStream2);
System.out.println(p);
}
}
反射第六步 : 通过反射加载资源文件 三种方式
最新推荐文章于 2024-09-24 12:18:22 发布