- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.InputStream;
- import java.util.ArrayList;
- import java.util.Collection;
- import java.util.Collections;
- import java.util.HashSet;
- import java.util.Properties;
- public class ReflectTest2 {
- public static void main(String[] args) throws Exception {
- /*读取文件并放入字节缓冲流,配置文件一定要用完整的路径,但完整的路径不是用编码,而是运算出来的。
- getRealpath();得到程序安装目录。*/
- InputStream ips = new FileInputStream("config.properties");
- /* getClassLoader()是获取该类的加载器,getResourceAsStream()是获取普通文件,方式是的在classpath
- 文件目录下逐一查找要加载的文件,这种方式只读不能改,注意最前面不要有"/"。
- InputStream ips = ReflectTest2.class.getClassLoader().getResourceAsStream("cn/itcast/day1/config.properties");
- // 相对于包下面的文件
- InputStream ips = ReflectTest2.class.getResourceAsStream("config.properties");
- */ /*它基于HashSetMap扩展了,可以把内存里面的键值顿写入到文件,也可以在初始化的时候
- 把自己的键值顿文件加载进来*/
- Properties props = new Properties();
- props.load(ips);
- //这是关闭调用的系统资源,而不是Java资源被关闭,这样不会倒置Java会垃圾回收,而系统资源还在
- ips.close();
- //获取className的值
- String className = props.getProperty("className");
- //创建className对应的类的字节码的对象
- Collection collections = (Collection)Class.forName(className);
-
- //Collection collections = new HashSet();
- ReflectPoint pt1 = new ReflectPoint(3, 3);
- ReflectPoint pt2 = new ReflectPoint(5, 5);
- ReflectPoint pt3 = new ReflectPoint(3, 3);
- collections.add(pt1);
- collections.add(pt2);
- collections.add(pt3);
- collections.add(pt1);
- System.out.println(collections.size());
- }
- }
复制代码
|
|