目录
一:配置文件
配置里面的内容基本上都是 键--值 成对成对存在的
二:java里面提供了一个配置文件类Properties
1:方法
public void load(InputStream inStream)从输入字节流读取属性列表(键和元素对)。
public String getProperty(String key)使用此属性列表中指定的键搜索属性。
2:例子
配置文件
className=day28.Student methodName=study
package day34;
public class Student {
private int age;
public String sex;
private String name;
public Student() {
}
private Student(String sex){
this.sex=sex;
}
public Student(int age, String sex) {
this.age = age;
this.sex = sex;
}
public void show(){
System.out.println("show");
}
private void show(int i){
System.out.println("show"+"**"+i);
}
private void study(){
System.out.println("study");
}
@Override
public String toString() {
return "Student{" +
"age=" + age +
", sex='" + sex + '\'' +
", name='" + name + '\'' +
'}';
}
}
package day34;
import java.io.FileReader;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.Properties;
public class Test5 {
public static void main(String[] args) throws Exception{
Properties properties = new Properties();//创建Properties对象
//获得配置文件输入流
FileReader fileReader = new FileReader("D:\\code\\bigdata\\src\\day34\\configure");
properties.load(fileReader);//加载输入流
//根据key获取value并输出
String classname = properties.getProperty("classname");
String methodname = properties.getProperty("methodname");
System.out.println(classname);
System.out.println(methodname);
//根据类名获得class对象
Class<?> aClass = Class.forName(classname);
//获得无参构造方法创建对象
Constructor<?> constructor = aClass.getConstructor();
Object o = constructor.newInstance();
System.out.println(o);
//根据方法名获得方法并执行
Method declaredMethod = aClass.getDeclaredMethod(methodname);
declaredMethod.setAccessible(true);//暴力访问
declaredMethod.invoke(o);
}
}