Java中getResourceAsStream的用法

转载 2015年11月21日 18:15:47


原链接在此: ttp://www.cnblogs.com/javayuer/archive/2011/01/02/1924192.html

从博客园搬运过来的,最近在学jdom需要读取文件路径,这个用得着


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是否以’/'开头无所谓,

当然这和具体的容器实现有关。

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");



感谢原作者!

java中使用相对路径读取文件的写法总结 以及getResourceAsStream()

读取文件的写法,相对路径在当前的目录结构中读取test.txt的有三种写法 File file = new File("src/test.txt"); File file = new File(Te...
  • my__Sun_
  • my__Sun_
  • 2017年07月05日 15:03
  • 955

java项目中的路径控制 getResource()和getResourceAsStream以及路径问题

在Servlet应用中,有一个getRealPath(String str)的方法,这个方法尽管也可以动态地获得文件的路径,不秘直接手写绝对路径,但这也是一个不被建议使用的方法,那么,我们有什么方法可...
  • lifewinnerforever
  • lifewinnerforever
  • 2017年05月01日 23:12
  • 275

Java绝对/相对路径获取与getResourceAsStream()方法

Java路径   Java中使用的路径,分为两种:绝对路径和相对路径。具体而言,又分为四种:    一、URI形式的绝对资源路径   如:file:/D:/java/eclipse3...
  • zmx729618
  • zmx729618
  • 2016年04月13日 16:38
  • 20975

类加载器与 Class.getResourceAsStream 问题解决

通过理解 Java 和 Tomcat 的类加载器架构解决 getResourceAsStream 无法加载资源的问题。...
  • w1196726224
  • w1196726224
  • 2017年01月14日 20:11
  • 3503

java加载外部文件数据到代码中:外部数据文件放到jar包中,调用方法getResourceAsStream

任务要将数据文件geo.txt加载进行。因为是别人写的总体项目,不能乱动位置。只能将geo.txt打包到jar中某目录。比如,放到.class文件下怎么加载:http://riddickbryant....
  • longshenlmj
  • longshenlmj
  • 2014年12月10日 17:50
  • 2370

Sax 中 getResourceAsStream 读取src目录下以及WEB-INF目录下的XML写法

四种常见的XML解析方法,分别为:DOM、SAX、JDOM、Dom4j。 一、getResourceAsStream用法 首先,Java中的getResourceAsStream有...
  • Fly_Watermelon
  • Fly_Watermelon
  • 2016年03月03日 23:45
  • 1333

静态代码块 通过getClassLoader() 较高性能 获取资源属性文件

首先,获取资源属性的方式有很多种,这里先介绍两种:Abc.class.getClassLoader().getResourceAsStream(String name); 和 Abc.class....
  • u010839779
  • u010839779
  • 2015年02月10日 11:54
  • 2737

getResourceAsStream方法及缓存问题

首先,Java中的getResourceAsStream有以下几种:  1. Class.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所...
  • danchaofan0534
  • danchaofan0534
  • 2017年07月30日 20:37
  • 315

Java 文本格式的解读_properties

1.  创建一个文本db.properties
  • cssdl
  • cssdl
  • 2014年09月02日 12:39
  • 284

JBoss 系列十四:JBoss7/WildFly如何加载外部的文件或properties文件

内容概述 JBoss7/WildFly设底层框架一大亮点的Module class loading,及每一个相对独立的模块看作一个Module,每个Module都有自己的class loader,Mo...
  • kylinsoong
  • kylinsoong
  • 2013年10月11日 22:22
  • 7147
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java中getResourceAsStream的用法
举报原因:
原因补充:

(最多只允许输入30个字)