文档章节

Java中getResourceAsStream的用法小结

cloud-coder
 cloud-coder
发布于 2014/06/07 11:26
字数 403
阅读 2.9K
收藏 45

阿里云携手百名商业领袖、技术大咖,带您一探行进中的数字新基建!>>>

Java中getResourceAsStream的用法小结

一、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是否以’/'开头无所谓,当然这和具体的容器实现有关。

    Jsp下的application内置对象就是上面的ServletContext的一种实现。

二、用法示例

    1:要加载的文件和.class文件在同一目录下,例如:com.x.y 下有类me.class ,同时有资源文件myfile.xml那么,应该有如下代码:

    me.class.getResourceAsStream("myfile.xml");

     2: 在me.class目录的子目录下,例如:com.x.y 下有类me.class ,同时在 com.x.y.file 目录下有资源文件myfile.xml  那么,应该有如下代码:

    me.class.getResourceAsStream("file/myfile.xml");

    3:
不在me.class目录下,也不在子目录下,例如:com.x.y 下有类me.class ,同时在 com.x.file 目录下有资源文件myfile.xml, 那么,应该有如下代码:

    me.class.getResourceAsStream("/com/x/file/myfile.xml");

    总结一下,可能只是两种写法

    1、前面有 “ / ”,“ / ”代表了工程的根目录

    2、前面没有 “/”,代表当前类的目录

© 著作权归作者所有

cloud-coder
粉丝 249
博文 193
码字总数 141277
作品 0
广州
架构师
私信 提问
加载中

评论(1)

iehyou
iehyou
第三个还没用过, 就怕各个容器有差异,好坑
Resources.class.getResourceAsStream 获取配置的方法

getResourceAsStream和getResource的用法及Demo实例 https://www.cnblogs.com/shanheyongmu/p/5898764.html Resources.class.getResourceAsStream 获取配置的方法 https://blog.csdn.net/dw......

osc_a99nkwq0
2018/08/20
5
0
getResourceAsStream小结

springboot工程中代码放在java下面,配置文件放在resource下面 我把代码放在java下面com.aa包下,配置文件放在resource下面com.aa包下,其实resource对应的就是类路径。 读取配置三种方式 pa...

osc_3xz91vxi
2018/09/05
2
0
java多线程-ThreadLocal

大纲: 用法 源码 一、用法 ThreadLocal是一个容器,顾名思义就是把一个变量存到线程本地。 class Test { } class TestLocal implements Runnable { } /**结果: Thread-0 Thread-1 Thread-2...

osc_6ogjsu3t
2019/03/04
11
0
ClassLoader.getSystemResourceAsStream("a.txt")获取不到资源文件

一、解决方案 换成XXX.class.getClassLoader().getResourceAsStream("a.txt")即可。 二、场景复现 src/main/resource下存在文件a.txt,项目类中static 方法中读取该文件。ClassLoader.getSy......

osc_wws45aot
2019/08/22
1
0
【转载】java文件路径问题及getResource和getClassLoader().getResource的区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012572955/article/details/52880520 我们经常在java的io操作中读取文件,先看一个场景: 这样是读不到这个f...

osc_b1y21l0d
2019/02/22
4
0

没有更多内容

加载失败,请刷新页面

加载更多

史上最全的“文件或目录损坏且无法读取”的解决办法大集合

问题描述: G盘打不开文件或目录损坏且无法读取,是因为这个I盘的文件系统内部结构损坏导致的。史上最全的“文件或目录损坏且无法读取”的解决办法大集合具体的恢复方法看正文 工具/软件:极...

计算无敌
今天
9
0
2048游戏的最佳算法是什么? - What is the optimal algorithm for the game 2048?

问题: I have recently stumbled upon the game 2048 . 我最近偶然发现了2048游戏。 You merge similar tiles by moving them in any of the four directions to make "bigger" tiles. 您可......

javail
今天
9
0
Spring Cloud Ribbon 客户端负载均衡

Ribbon客户端组件提供一系列完善的配置选项,比如连接超时、重试、重试算法等,内置可插拔、可定制的负载均衡组件。下面是用到的一些负载均衡策略: 简单轮询负载均衡 加权轮询负载均衡 区域...

泥瓦匠BYSocket
今天
7
0
为什么在Python 3中“范围(1000000000000000(1000000000000001))”这么快?

问题: It is my understanding that the range() function, which is actually an object type in Python 3 , generates its contents on the fly, similar to a generator. 据我了解, ra......

技术盛宴
今天
9
0
OSChina 周四乱弹 —— 卖全家桶!

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @巴拉迪维 :陈慧娴的单曲《与泪抱拥》 陈慧娴的嗓音加上向雪怀的词,这样的经典组合真不多。#今日歌曲推荐# 《与泪抱拥》- 陈慧娴 手机党少年...

小小编辑
今天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部