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 @   LinxhzzZ  阅读(427)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示