class.getClassLoader().getResourceAsStream(file) class.getResourceAsStream(file)区别

通过源码阅读是最好的方法,我们可以快速的查看区别

整体说明

  • class.getClassLoader().getResourceAsStream(String name) 
    默认从classpath中找文件(文件放在resources目录下),name不能带“/”,否则会抛空指针
  • class.getResourceAsStream(String name) 
    通过给定名称查找资源,查询资源的规则由给定的类的class load来实现,这个方法由类的loader来执行;如果这个类由bootstrap加载,那么方法由ClassLoader.getSystemResourceAsStream代理执行。 
    代理之前,绝对的资源名称通过传入的name参数以下算法进行构造: 
    如果name以"/"开头,那么绝对路径是/后边跟的名字 
    //从classpath下的config相对路径中读取config.ini" 
    MyClass.class.getResourceAsStream("/config/config.ini"); 
    如果name不是以"/"开头,那么绝对路径是package名"."换成“/”以后再加name

参考代码

  • class.getResourceAsStream(String name)

 

 


 

 

  • class.getClassLoader().getResourceAsStream(String name)

 

 

说明

碰到问题,阅读源码是一个好习惯,可以加速我们的理解

posted on   荣锋亮  阅读(301)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2018-12-17 Benthos metrcis 说明
2017-12-17 arangodb 安装简单试用
2013-12-17 silverlight 中javascript 代码与托管代码的互调用 以及一些思考

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示