Java中getResourceAsStream的用法小结

简介:

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、前面没有 “/”,代表当前类的目录

目录
相关文章
|
11天前
|
Java
Java中的抽象类:深入了解抽象类的概念和用法
Java中的抽象类是一种不能实例化的特殊类,常作为其他类的父类模板,定义子类行为和属性。抽象类包含抽象方法(无实现)和非抽象方法。定义抽象类用`abstract`关键字,子类继承并实现抽象方法。抽象类适用于定义通用模板、复用代码和强制子类实现特定方法。优点是提供抽象模板和代码复用,缺点是限制继承灵活性和增加类复杂性。与接口相比,抽象类可包含成员变量和单继承。使用时注意设计合理的抽象类结构,谨慎使用抽象方法,并遵循命名规范。抽象类是提高代码质量的重要工具。
25 1
|
29天前
|
前端开发 Java
java中的Queue队列的用法
java中的Queue队列的用法
19 1
|
30天前
|
XML Java 编译器
java aspectjrt AOP 用法
java aspectjrt AOP 用法
21 0
|
4月前
|
Java
【零基础学Java】—final关键字与四种用法(二十九)
【零基础学Java】—final关键字与四种用法(二十九)
|
4月前
|
Java
【零基础学Java】—this关键字的三种用法+Java继承的三个特点(二十一)
【零基础学Java】—this关键字的三种用法+Java继承的三个特点(二十一)
|
1月前
|
安全 Java 开发者
Java 8 `Optional` 类的用法和优势
【2月更文挑战第15天】
13 0
|
2月前
|
Java
|
2月前
|
存储 传感器 机器学习/深度学习
Java数组全套深入探究——进阶知识阶段6、三维数组以及更多维度数组的概念和用法
Java数组全套深入探究——进阶知识阶段6、三维数组以及更多维度数组的概念和用法
44 0
|
3月前
|
Java
java8 foreach用法list转map、map转list
java8 foreach用法list转map、map转list