- 浏览: 888074 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (466)
- iPhone, iOS , Objective-c (155)
- 数据库 (20)
- 设计模式 (5)
- 第三方包管理,cocoapod (2)
- 版本管理, SVN, Subversion, Git (1)
- Google, Android, Java (14)
- Wordpress (1)
- 职业素养 (3)
- 版本管理,git (3)
- 前端小技巧 (2)
- flash (1)
- javascript (5)
- Ruby (0)
- 编程语言 (1)
- 网络常识 (1)
- 找到生活好感觉 (5)
- 产品经理 (1)
- markdown (1)
- 云服务器 (1)
- iPhone (116)
- iOS (116)
- Objective-c (116)
- 学习技巧 (2)
- Google (5)
- Android (6)
- Java (21)
- python (1)
- sqlite (3)
- node.js (2)
- mongodb (2)
- 学习技巧,阅读 (2)
- 软件测试 (3)
- 架构设计 (2)
- 设计 (1)
- Spring framework (3)
- junit (1)
- Linux (2)
- 软件 (1)
- Struts2 (1)
- 版本管理 (3)
- SVN (3)
- Subversion (3)
- Git (3)
- mysql (5)
- quartz (1)
- 无关技术 (1)
- 前端 (1)
- Redis (1)
- 产品管理 (0)
- 计算机常识 (1)
- 计算机科学 (0)
- swift (1)
- 服务器 (2)
- 搜索 (1)
- Scala (1)
- J2EE (1)
- maven (1)
- 前端css (1)
- 英语 (1)
- 消息队列 (1)
- kafka (0)
- apache kafka (4)
- netbeans (1)
- IDE (2)
- 歌词 (1)
- 过滤器实现 (1)
- linux vim vi (1)
- jmeter (1)
- springcloud (1)
最新评论
-
hujingnemo:
不知道为什么打不开
CHM如何改编字体大小 -
weiboyuan:
求答案 weiboyuanios@163.com
iOS软件工程师面试题(高级) -
xueji5368:
这个现在已经广泛使用了嘛!
RoboGuice入门 -
Yao__Shun__Yu:
...
CHM如何改编字体大小 -
353144886:
非常之详细 美女求认识
sqlite数据类型 datetime处理
Java的getResourceAsStream
- 博客分类:
- Java
原理是与类加载器相关
类加载器原理请参考:http://www.cnblogs.com/xing901022/p/4574961.html
JDK说明:
Finds a resource with a given name. The rules for searching resources associated with a given class are implemented by the defining class loader of the class. This method delegates to this object's class loader. If this object was loaded by the bootstrap class loader, the method delegates to ClassLoader.getSystemResourceAsStream(java.lang.String).
首先,Java中的getResourceAsStream有以下几种:
1. Class.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由ClassLoader获取资源。
2. Class.getClassLoader.getResourceAsStream(String path) :默认则是从ClassPath根下获取,path不能以’/'开头,最终是由ClassLoader获取资源。
3. ServletContext. getResourceAsStream(String path):默认从WebAPP根目录下取资源,Tomcat下path是否以’/'开头无所谓,当然这和具体的容器实现有关。
4. Jsp下的application内置对象就是上面的ServletContext的一种实现。
其次,getResourceAsStream 用法大致有以下几种:
第一: 要加载的文件和.class文件在同一目录下,例如:com.x.y 下有类me.class ,同时有资源文件myfile.xml
那么,应该有如下代码:
me.class.getResourceAsStream("myfile.xml");
第二:在me.class目录的子目录下,例如:com.x.y 下有类me.class ,同时在 com.x.y.file 目录下有资源文件myfile.xml
那么,应该有如下代码:
me.class.getResourceAsStream("file/myfile.xml");
第三:不在me.class目录下,也不在子目录下,例如:com.x.y 下有类me.class ,同时在 com.x.file 目录下有资源文件myfile.xml
那么,应该有如下代码:
me.class.getResourceAsStream("/com/x/file/myfile.xml");
总结一下,可能只是两种写法
第一:前面有 “ / ”
“ / ”代表了工程的根目录,例如工程名叫做myproject,“ / ”代表了myproject
me.class.getResourceAsStream("/com/x/file/myfile.xml");
第二:前面没有 “ / ”
代表当前类的目录
me.class.getResourceAsStream("myfile.xml");
me.class.getResourceAsStream("file/myfile.xml");
最后,自己的理解:
getResourceAsStream读取的文件路径只局限与工程的源文件夹中,包括在工程src根目录下,以及类包里面任何位置,但是如果配置文件路径是在除了源文件夹之外的其他文件夹中时,该方法是用不了的。
类加载器原理请参考:http://www.cnblogs.com/xing901022/p/4574961.html
JDK说明:
Finds a resource with a given name. The rules for searching resources associated with a given class are implemented by the defining class loader of the class. This method delegates to this object's class loader. If this object was loaded by the bootstrap class loader, the method delegates to ClassLoader.getSystemResourceAsStream(java.lang.String).
首先,Java中的getResourceAsStream有以下几种:
1. Class.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由ClassLoader获取资源。
2. Class.getClassLoader.getResourceAsStream(String path) :默认则是从ClassPath根下获取,path不能以’/'开头,最终是由ClassLoader获取资源。
3. ServletContext. getResourceAsStream(String path):默认从WebAPP根目录下取资源,Tomcat下path是否以’/'开头无所谓,当然这和具体的容器实现有关。
4. Jsp下的application内置对象就是上面的ServletContext的一种实现。
其次,getResourceAsStream 用法大致有以下几种:
第一: 要加载的文件和.class文件在同一目录下,例如:com.x.y 下有类me.class ,同时有资源文件myfile.xml
那么,应该有如下代码:
me.class.getResourceAsStream("myfile.xml");
第二:在me.class目录的子目录下,例如:com.x.y 下有类me.class ,同时在 com.x.y.file 目录下有资源文件myfile.xml
那么,应该有如下代码:
me.class.getResourceAsStream("file/myfile.xml");
第三:不在me.class目录下,也不在子目录下,例如:com.x.y 下有类me.class ,同时在 com.x.file 目录下有资源文件myfile.xml
那么,应该有如下代码:
me.class.getResourceAsStream("/com/x/file/myfile.xml");
总结一下,可能只是两种写法
第一:前面有 “ / ”
“ / ”代表了工程的根目录,例如工程名叫做myproject,“ / ”代表了myproject
me.class.getResourceAsStream("/com/x/file/myfile.xml");
第二:前面没有 “ / ”
代表当前类的目录
me.class.getResourceAsStream("myfile.xml");
me.class.getResourceAsStream("file/myfile.xml");
最后,自己的理解:
getResourceAsStream读取的文件路径只局限与工程的源文件夹中,包括在工程src根目录下,以及类包里面任何位置,但是如果配置文件路径是在除了源文件夹之外的其他文件夹中时,该方法是用不了的。
发表评论
-
java线程池分类及应用
2017-07-20 13:40 5791. 为什么使用线程池 诸如 Web 服务器、数据库服务器、文 ... -
Integer值传递
2017-06-15 18:24 378Java本身都是值传递式的调用,对于对象传递的是地址值。给地址 ... -
Map遍历k,v
2017-06-14 12:01 304发现还Map接口中还有一个Entry<K,V>的接 ... -
使用entrySet遍历Map类集合KV,而不是keySet方式进行遍历
2017-02-08 11:04 849说明:keySet其实是遍历了2次,一次是转为Iterator ... -
并发下remove集合元素要注意的事情
2017-02-08 10:54 11811.不要在foreach循环里进行元素的remove/add操 ... -
Java原始类型转换
2016-08-15 16:25 444要获取获取对象示例 Int Integer i=myInt. ... -
Map转字符串最高效方法
2016-08-09 16:29 2523想做的事情是将一个Map类转成具体和字符串用&隔开,但 ... -
java昨天今天判断
2016-07-01 12:07 443Calendar toda ... -
按key排序
2016-03-04 16:50 444import java.util.Comparator; i ... -
Chrome浏览器查看HTTP header
2016-01-19 17:04 1700使用chrome浏览器自带的开发者工具查看http头的方法 1 ... -
部署多个项目到tomcat
2015-12-31 00:31 363If you want Tomcat to listen to ... -
JDBC步骤
2015-08-19 15:38 488JDBC连接数据库 •创建一个以JDBC连接数据库的程序 ... -
java与javascript排序回调的不同之处
2015-07-14 22:27 439Arrays.sort(values,new Comparat ... -
@Resource(type注入失败
2015-06-03 10:45 868不断的去找资料,换方法,最后发现是因为注入的service写了 ... -
eclipse常用快捷键
2015-06-01 17:12 557找出选中方法 使用 Ctrl + Shift + G -
java.util.ConcurrentModificationException 解决办法
2015-05-28 17:16 323在使用iterator.hasNext()操作迭代器的时候,如 ... -
macbook JAVA_HOME设置
2015-05-20 12:34 625搞了半个小时,相当蛋疼 因为在.bash_profile和pr ... -
Java企业设计模式
2014-10-23 20:20 0客户端表达层 为最终用户提供用户界面,例如Web浏览器。 ... -
eclipse 程序调试
2014-08-07 22:34 572http://www.56.com/u35/v_MTAyMj ... -
iBatis加锁
2014-07-10 17:48 819ibatis有事务处理,它有代理类SqlMapExecutor ...
相关推荐
主要介绍了Java中getResourceAsStream用法,较为详细的分析了getResourceAsStream的功能及用法,需要的朋友可以参考下
java getResourceAsStream种类,分我所知道的3种情况
Java中getResourceAsStream的用法.md
主要介绍了Java 使用getClass().getResourceAsStream()方法获取资源的相关资料,这里主要讲解哪种方式可以获取到文件资源,需要的朋友可以参考下
Java加载资源文件的两种方法getResource与getResourceAsStream
InputStream in = getClass().getResourceAsStream("/config.properties"); try { props.load(in); Enumeration en = props.propertyNames(); System.out.print("读取配置文件:"); while(en....
java项目读取配置文件的实例代码,使用class.getClassLoader().getResourceAsStream方法。
Java连接数据库代码实现代码, 代码片段: public MyTask(ServletContext context) { this.mContext = context; Properties prop = new Properties(); InputStream in = null; try { in = MyTask.class....
在java类里直接读取配置文件中的信息,用到的方法是this.getClass().getClassLoader().getResourceAsStream
static { try { props.load(ReadPropertity.class.getClassLoader().getResourceAsStream( "utils.properties")); } catch (IOException e1) { e1.printStackTrace(); } } public static String getProperty(String...
刚开始简单破解了一下。 生成PDF都没问题,后来发现生成... InputStream is = XXX.class.getResourceAsStream("/pdflicense.xml"); license.setLicense(is); is.close(); 其中pdflicense.xml已经包含在jar文件里面
InputStream is = DruidJDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"); prop.load(is); ds = DruidDataSourceFactory.createDataSource(prop); } catch (IOException e) { e....
这是基于收集的数据的 Java8 用户代理解析器实现。 为了使用这个解析器,你需要一个来自这里的解析器数据库版本: : 。 此文件不作为此存储库的一部分分发。 用法 Parser p = new Parser ( // Obtain this file ...
is = ReadProperties.class.getClassLoader().getResourceAsStream( strFilePath); if (is == null) { WriteLog.writeLog("閰嶇疆鏂囦欢涓嶅瓨鍦紝璇锋鏌ユ枃浠跺悕鎴栬矾寰勬槸鍚︽纭紒"); ...
1、使用class变量的getResourceAsStream()方法 2、使用class.getClassLoader()所得到的java.lang.Clas
.getResourceAsStream("/testRead.xls"); reader.setExcelTemplate("testRead"); List[]> datas = reader.readArrays(); //List beans = reader.readBeans(Account.class); //List, Object>> maps = ...
一个挺简单的Java音乐播放器,主要是播放wav格式的音频文件,其它格式暂不支持,代码比较早,确实是比较简单的例子,Java新手参考吧。源代码如下所示: public MusicDemo() { textbox=new TextBox("title",...
java加载属性配置文件[properties文件]什么是properties文件为什么要使用properties文件使用java加载properties文件的两种方式使用类的加载器获得输入流加载文件getResourceAsStream()介绍使用文件输入流加载文件...
aspose.slides-16.10.0.jar破解版,亲测可用。...InputStream input = AsposeUtil.class.getResourceAsStream("license.xml"); License license = new com.aspose.slides.License(); license.setLicense(input);
使用java.util.Properties类的load()方法 示例: InputStream in = lnew BufferedInputStream(new FileInputStream(name)); Properties p = new Properties(); p.load(in); 2。使用java.util....