java.lang.NullPointerException:inStream parameter is null错误的解决办法

利用getClassLoader()加载文件,应该是启动程序后,没有找到配置文件,无法加载,自然也获取不到属性;

原因:ClassLoder()读取配置文件,只能读取类路径下的配置文件,所以一般需要将配置文件放在类路径目录下。

解决:getClassLoader().getResourceAsStream(path)的路径应该选择  

   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;

posted @ 2022-09-28 10:14  LinxhzzZ  阅读(508)  评论(0)    收藏  举报