利用getClassLoader()加载文件,应该是启动程序后,没有找到配置文件,无法加载,自然也获取不到属性;
原因:ClassLoder()读取配置文件,只能读取类路径下的配置文件,所以一般需要将配置文件放在类路径目录下。
解决:获取的路径应该选择Path From Source Root,根目录下的路径;(右击属性文件,copy path里选择复制)
1 // 1.读取配置文件中的4个基本信息 2 InputStream is = Class1_ConnectTest.class.getClassLoader().getResourceAsStream("jdbc.properties"); 3 // 2.加载配置文件中的数据 4 Properties pros = new Properties(); 5 pros.load(is);
其他方式读取:inputstream()读取配置文件,该方式的优点在于可以读取任意路径下的配置文件。
1 Properties pro = new Properties(); 2 3 // 使用InPutStream流读取properties文件 4 BufferedReader bufferedReader = new BufferedReader(new 5 FileReader("config.properties")); 6 pro.load(bufferedReader); 7 8 // 获取key对应的value值 9 pro.getProperty(String key);
在使用中遇到的最大的问题可能是配置文件的路径问题:
如果配置文件在当前类所在的包下,那么需要使用包名限定;
如:config.properties若在com.test.config包下,则要使用com/test/config/config.properties(通过Properties来获取);
属性文件在src根目录下,则直接使用config.properties或config;
标签:lang,java,读取,配置文件,properties,Properties,new,config,inStream From: https://www.cnblogs.com/LinxhzZ/p/16737072.html