为什么读取不到config.properties文件?求大神指点
package com.hanmin.demo3;
import java.io.*;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.Properties;
/**
* 反射配置文件-不用改源代码,只改配置文件就可以实现不同类不同方法
* 调用Person方法,调用Student方法,调用Worker方法
* 类不清楚,方法也不清楚,通过配置文件实现此功能
*
* 运行的类名和方法名字,以键值对的形式,写在文本中
* 运行哪个类和方法,修改配置文件即可
*
* 实现步骤:
* 1.准备配置文件,键值对
* 2.IO流读取配置文件 Reader
* 3.文件中的键值对存储到集合中 Properties
* 集合保存的键值对,就是类名和方法名
* 4.反射获取指定类的class文件对象
* 5.class文件对象,获取指定方法
* 6.运行方法
* @author Hanmin
*/
public class ReflecDemo2 {
public static void main(String[] args) throws Exception{
//用IO流读取文件
FileReader fr = new FileReader("config.properties");
//创建集合对象
Properties p = new Properties();
p.load(fr);
fr.close();
//通过键获取值
String className = p.getProperty("className");
String methodName = p.getProperty("methodName");
//反射获取指定类的class文件
Class c = Class.forName(className);
//反射获取指定构造方法,创建对象
Constructor con = c.getConstructor(null);
Object obj = con.newInstance(null);
//用反射获取指定方法
Method m = c.getMethod(methodName, null);
//运行该方法
m.invoke(obj, null);
}
}
报错:
Exception in thread "main" java.io.FileNotFoundException: config.properties (系统找不到指定的文件。)
at java.base/java.io.FileInputStream.open0(Native Method)
at java.base/java.io.FileInputStream.open(Unknown Source)
at java.base/java.io.FileInputStream.<init>(Unknown Source)
at java.base/java.io.FileInputStream.<init>(Unknown Source)
at java.base/java.io.FileReader.<init>(Unknown Source)
at com.hanmin.demo3.Test.main(Test.java:25)
为什么读取不到config.properties文件?求大神指点,config.properties文件放在如下图所示位置,是路径对吗?
里面的内容如下:
className=com.hanmin.demo3.Person
methodName=eat