一、准备在src下的配置文件classinfo.properties
二、 通过IO流读取classinfo.properties文件
1、以常规的文件路径名的方式
FileReader reader = new FileReader("D:\\Users\\cwy\\JAVA\\classinfo.properties");
2、 放置在IDEA工具工程模块src文件下的方式
FileReader reader = new FileReader("chapter/src/com/java/classinfo.properties");
3、 放置在IDEA工具工程模块src文件下,获取文件的绝对路径,从类的根目录下加载。
String path = Thread.currentThread().getContextClassLoader()
.getResource("classinfo.properties").getPath();
FileReader reader = new FileReader(path);
4、 直接以流的形式返回,不需要创建IO流对象了。
InputStream reader = Thread.currentThread().getContextClassLoader()
.getResourceAsStream("classinfo.properties");
5、采用java.util包下提供的一个资源绑定器的方式,便于获取属性配置文件中的内容。
1、 文件必须是以.properties结尾
2、 文件必须在类路径下
ResourceBundle bundle = ResourceBundle.getBundle("classinfo");
String className = bundle.getString("className");
三、创建属性类对象Map
1、创建集合对象
Properties pro = new Properties();
pro.load(reader);
以上(1)(2)(3)都需要进行IO流的加载、(4)(5)不需要。
2、通过key获取value
String className = pro.getProperty("className");
四、通过反射机制实例化对象
1、通过Class的newInstance()方法来实例化对象。
newInstance()调用的是无参数构造,必须保证无参构造是存在的!
Class c = Class.forName(className);
Object obj = c.newInstance();