Java中getResourceAsStream的用法小结

2014-06-07  来源:本站原创  分类:Java  人气:8 

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

相关文章
  • Java中getResourceAsStream的用法小结 2014-06-07

    Java中getResourceAsStream的用法小结 一.Java中的getResourceAsStream主要有以下三种用法: 1.Class.getResourceAsStream(String path) path 不以'/'开头时默认是从此类所在的包下取资源,以'/'开头则是从ClassPath根下获取. 其实是通过path构造一个绝对路径,最终还是由ClassLoader获取资源. 2.Class.getClassLoader.getResourceAsStream(String

  • Java中的字符串用法小结 2014-10-31

    这篇文章主要介绍了Java中的字符串用法,实例总结了java中关于字符串操作的各种常用的技巧,非常具有实用价值,需要的朋友可以参考下 本文实例总结了Java中的字符串用法.分享给大家供大家参考.具体分析如下: 字符串的本质是char类型的数组,但在java中,所有用双引号""声明的字符串都是一个String类的对象.这也正体现了Java完全面向对象的语言特点. String 类 1.String类对象表示的是一个常量字符串.它是不可变长度的.也就是说,一旦创建了一个String类的实例

  • Java中getResourceAsStream的用法 2013-06-24

    首先,Java中的getResourceAsStream有以下几种: 1. Class.getResourceAsStream(String path) : path 不以'/'开头时默认是从此类所在的包下取资源,以'/'开头则是从ClassPath根下获取.其只是通过path构造一个绝对路径,最终还是由 ClassLoader获取资源. 2. Class.getClassLoader.getResourceAsStream(String path) :默认则是从ClassPath根下获取,pa

  • java中this的用法示例(关键字this) 2014-06-20

    这篇文章主要介绍了java中this的用法示例(关键字this),需要的朋友可以参考下 this是指向本身的隐含的指针,简单的说,哪个对象调用this所在的方法,那么this就是哪个对象. 示例代码: TestThis_1.java /* 问题:什么是this * 输出结果: * [email protected] */ public class TestThis_1 { public static void main(String[] args) { A aa = new A(); System.out.p

  • Java中的多态用法实例分析 2014-07-10

    这篇文章主要介绍了Java中的多态用法,较为详细的分析了java中多态的概念与相关的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了Java中的多态用法.分享给大家供大家参考.具体分析如下: 多态,是面向对象的程序设计语言最核心的特征.封装性.继承性都比较简单,所以这里只对多态做一个小小的笔记... 1.什么是多态? 多态意味着一个对象可以多重特征,可以在特定的情况下,表现出不同的状态,从而应对不同的属性和方法.在Java中,多态的实现指的是使用同一个实现接口,以实现不同的对

  • 解析java中super的用法分析 2014-07-20

    本篇文章是对java中super的用法进行了详细的分析介绍,需要的朋友参考下 昨天写this用法总结的时候,突然产生了一个问题,请教别人之后,有了自己的一点认识.还是把它写下来,为大家更好的认识提供一点思路. 1)有人写了个很好的初始化属性的构造函数,而你仅仅想要在其中添加另一些自己新建属性的初始化,这样在一个构造函数中调用另外一个构造函数,可以避免重复的代码量,减少工作量: 2)在一个构造函数中调用另外一个构造函数的时候应该用的是同一块内存空间,在默认的构造函数中先初始化变量,调用另一个的时候

  • 解析java中This的用法分析 2014-07-25

    本篇文章是对java中This的用法进行了详细的分析介绍,需要的朋友参考下 用类名定义一个变量的时候,定义的应该只是一个引用,外面可以通过这个引用来访问这个类里面的属性和方法,那们类里面是够也应该有一个引用来访问自己的属性和方法纳?呵呵,JAVA提供了一个很好的东西,就是 this 对象,它可以在类里面来引用这个类的属性和方法.先来个简单的例子: public class ThisDemo { String name="Mick"; public void print(String n

  • java中transient关键字用法分析 2014-09-24

    这篇文章主要介绍了java中transient关键字用法,以实例形式分析了java中transient关键字的功能及使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例分析了java中transient关键字用法.分享给大家供大家参考.具体分析如下: java有个特点就是序列化,简单地来说就是可以将这个类存储在物理空间(当然还是以文件的形式存在),那么当你从本地还原这个文件时,你可以将它转换为它本身.这可以极大地方便网络上的一些操作,但同时,因为涉及到安全问题,所以并不希望把类里面所有

  • java中enum的用法 2015-01-21

    这篇文章主要介绍了java中enum的用法,包括了枚举类型的基本定义及用法分析,对于学习Java有着一定的学习与借鉴价值,需要的朋友可以参考下 本文实例讲述了java中enum的用法.分享给大家供大家参考.具体分析如下: 1. 基本用法 enum Day { SUNDAY, MONDAY, TUESDAY, WENDSDAY, THURSDAY, FRIDAY, SATURDAY; } 枚举是常量,所以应该用大写. 2. 枚举是对象 枚举隐含地继承了java.lang.Enum,所以它具有jav

  • jquery 插件开发 extjs中的extend用法小结 2013-10-22

    在jquery中,extend其实在做插件时还是用的比较多的,今天同时小结jquery和ext js中的extend用法,有需要的朋友可以参考下 在jquery中,extend其实在做插件时还是用的比较多的,今天同时小结jquery和ext js中 的extend用法,先来看jquery中的. 1) extend(dest,src1,src2,src3...); var start = { id: 123, count: 41, desc: 'this is information', titl

  • Java中的equals学习小结 2013-03-15

    Java中的equals是十分重要的,和= =要区别开来,最近在看孙卫琴的JAVA面向对象编程一书,觉得对其阐述写的不错,所以现在小结其 主要内容,而且要将 = =和 equals列为重要的对比概念来学习 1.声明格式 public boolean equals(Object obj) 其比较规则为:当参数obj引用的对象与当前对象为同一个对象时,就返回true,否则返回false. 比如以下两个对象animal1和animal2,引用不同的对象,因此用==或equals()方法比较的结果为fa

  • JAVA中STRING的常用方法小结 2014-04-23

    这篇文章介绍了JAVA中STRING的常用方法,有需要的朋友可以参考一下 一.创建并初始化一个字符串 String b = "hello"; 使用构造方法创建并初始化一个字符串 String();//初始化字符串,表示空字符序列 String(value);//利用已存在的字符串常量创建一个新的对象 String (char[] value);//利用一个字符数组创建一个字符串 String(char[] value,int offset,int count);//截取字符数组offs

  • List<>中Find的用法小结 2015-03-10

    本篇文章主要是对List<>中Find的用法进行了总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助 I've been looking for help on how to find objects in Generics with List.Find() method .... and ... take a look what I have found. In the follow example, I created a simple class: public class Pers

  • java中HashMap的用法 2012-11-23

    重点介绍HashMap.首先介绍一下什么是Map.在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value.在下文中会有例子具体说明. 再来看看HashMap和TreeMap有什么区别.HashMap通过hashcode对其内容进行快速查找,而TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不固定的). import java

  • javascript中的括号()用法小结 2013-12-04

    ()作为一个数学运算中的基本符号,在计算机程序中也被大量使用,最基本的就是提高运算优先级,JS中也不例外 1.提高优先级 (1+2)*3 与数学运算中保持一致,先计算1+2再乘以3得出9 同时也可以是其他表达式,如: (a+(function(i){return i}(2)))*c 2.函数的参数要放在括号里() 复制代码 代码如下: function fun(a,b,c) { //- } 3.立即执行函数表达式 复制代码 代码如下: (function fun(a,b,c) { //- })(

  • C++中函数的用法小结 2014-07-10

    这篇文章主要为大家分享下本人在阅读<C++ Primer>函数一章时的读书总结,需要的朋友可以参考下 函数在C++中的使用,无非2种地方,一处是函数的定义,一处是函数的调用.而函数的定义则非常简单,由三个部分组成:函数的返回类型.函数名和函数的形参表.当然,这里不同的函数定义可以还会稍有不同,比如类的成员函数.内联函数等.这里我们主要讨论函数的调用时需要注意的一些问题. 一.参数传递 我们将函数定义或声明里的参数叫形参,而在调用函数时传入的参数叫实参.那么根据形参类型的不同,有几下形式的参数传

  • Java中CyclicBarrier的用法分析 2015-04-26

    CyclicBarrier和CountDownLatch一样,都是关于线程的计数器.用法略有不同,测试代码如下: public class TestCyclicBarrier { private static final int THREAD_NUM = 5; public static class WorkerThread implements Runnable{ CyclicBarrier barrier; public WorkerThread(CyclicBarrier b){ this

  • java中join的用法 2013-09-04

    看了代码一切就明白了.做下记录: package com.bupt.test; public class JoinTest { public static void main(String[] args) { Thread t = new Thread(new RunThread()); t.start(); try { t.join(); //等到t线程执行结束后,再继续执行 System.out.println("main end"); } catch (InterruptedEx

  • 关于JAVA中this的使用方法小结 2014-12-21

    现在让大家看一个小例子,给你分享一下JAVA中"this"的用法,有需要的朋友可以参考一下 我知道很多朋友都和我一样:在JAVA程序中似乎经常见到"this",自己也偶尔用到它,但是到底"this"该怎么用,却心中无数!很多人一提起它,就说"当前对象",可到底什么是当前对象,是什么当前对象,他自己也不清楚.现在让大家看一个小例子,给你分享一下JAVA中"this"的用法! /** * @author fen

  • java之static关键字用法实例解析 2013-12-11

    这篇文章主要介绍了java之static关键字用法实例解析,包括了static关键字的原理讲解及用法分析,并附带了实例说明,需要的朋友可以参考下 本文实例讲述了java中static关键字用法,分享给大家供大家参考.具体分析如下: 一.介绍: 1.在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时被初始化,对于该类的所有对象来说,static成员变量只有一份. 2.用static声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它,所以在static