Java SE笔记: 反射和Properties

properties配置文件

dbinfo.properties文件中的内容:

1
2
3
4
driver oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@192.168.1.100:1521:bjpowernode
username:\u5f20\u4e09
password=tiger

dbinfo这样的文件我们称作配置文件,
配置的文件的作用就是:使程序更加灵活。
注意:一般在程序中可变的东西不要写死。推荐写到配置文件中。
运行同样的程序得到不同的结果。
像dbinfo这样一个具有特殊内容的配置文件我们又叫做:属性文件。
java规范中要求属性文件以“.properties”

属性文件中数据要求:

  • key和value之间可以使用“空格”,“冒号”,“等号”。
  • 如果“空格”,“等号”,“冒号”都有,按最前的作为分隔符。

IO+Properties例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// 保存配置信息(也可以直接在文件中修改)
static void saveProperties() throws IOException
{
Properties p = new Properties();
// 设置属性
p.setProperty("username", "admin");
p.setProperty("password", "123456");
p.setProperty("ip", "192.168.6.2");
p.store(new FileWriter("e:\\niit\\settings.txt"), null);
}

// 读取配置信息
static void readProperties() throws FileNotFoundException, IOException
{
Properties p = new Properties();
p.load(new FileReader("e:\\niit\\settings.txt"));
System.out.println(p.getProperty("username"));
System.out.println(p.getProperty("password"));
System.out.println(p.getProperty("ip"));
}

反射机制+IO+Properties联合应用,动态创建java对象:

利用这样的方法可以实现构建动态的代码,即代码在运行时进行装配!使代码更加灵活!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//1.创建属性对象
Properties p = new Properties();
//2.创建流
FileReader fr = new FileReader("classInfo.properties");
//3.加载
p.load(fr);
//4.关闭流
fr.close();
//通过key获取value
String className = p.getProperty("className");
//System.out.println(className);
//通过反射机制创建对象
Class c = Class.forName(className);
//创建对象
Object o = c.newInstance();
System.out.println(o);

该配置文件如下,可以直接在外部修改value的值,产生达到不同效果的代码
classInfo.properties中的内容:
1
className=User

文章目录
  1. 1. properties配置文件
  2. 2. IO+Properties例子:
  3. 3. 反射机制+IO+Properties联合应用,动态创建java对象: