getResourceAsStream和getResource的用法

论坛 期权论坛 脚本     
已经选择匿名的用户   2021-10-25 13:35   2217   0

getResourceAsStream:查找具有给定名称的资源。返回 inputstream

getResource:查找带有给定名称的资源路径。返回URL

简单示例:(注:任何一个类都有一个getClass()的方法)

public class Test {
public void getResource(String url){
InputStream stream = getClass().getResourceAsStream(url);
System.out.println(getClass().getResource(url));
byte[] line = new byte[1024*1024];
try {
stream.read(line);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String str = new String(line);
System.out.println(str.trim());
}

public static void main(String[] args) {
new Test().getResource("/io/aaa.txt");
}
}
运行结果:
file:/D:/IBM/workspace/HtmlParser/io/aaa.txt
abceefghijklmn
第一行得到的是aaa.txt的路径,第二行是aaa.txt的内容。
需要注意的是必须有前面的“/”,代表的是工程目录,否则找不到。

1.可以在servlet的init方法里
String path = getServletContext().getRealPath("/");
这将获取web项目的全路径
例如 :E:/eclipseM9/workspace/tree/
tree是我web项目的根目录
2.你也可以随时在任意的class里调用
this.getClass().getClassLoader().getResource("/").getPath();
这将获取 到classes目录的全路径
例如 : E:/eclipseM9/workspace/tree/WEB-INF/classes/
这个方法也可以在web环境里确定路径,比较好用
3.request.getContextPath();
获得web根的上下文环境
如 /tree
tree是我的web项目的root context
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:86
帖子:240
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP