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;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~