getResourceAsStream与直接new出一个InputStream的子类

dreamhunter_lan 2011-06-12 10:04:57
给一个路径,看到有时会用getClass().getClassLoader().getResourceAsStream()来得到一个InputStream对象
请跟直接new一个出来有什么不一样,比如说都给一个绝对名字:fileName = D:\test\fuck.txt,那么:
InputStream in = getClass().getClassLoader().getResourceAsStream(fileName);

InputStream in = new FileInputStream(fileName);
有啥不同?
...全文
159 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dreamhunter_lan 2011-06-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bao110908 的回复:]

一个是基于文件系统的 InputStream

一个是基于类加器的 InputStream

完全不一样。
[/Quote]
给个详细例子看看,之前没接触这些~~~
现在也是用getResourceAsStream来加载配置文件,也是突然想到这两种都可以得到一个InputStream
想看看在具体的表现上有啥不同,谢谢
softroad 2011-06-13
  • 打赏
  • 举报
回复
2楼

+1
oO临时工Oo 2011-06-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bao110908 的回复:]
一个是基于文件系统的 InputStream

一个是基于类加器的 InputStream

完全不一样。
[/Quote]

+1

表现为寻址方式不一样

假如当前类T1的应用中的包路径是 t1.T1,同时在类T1下面还有一个123.txt的文件
文件系统中以类似[C:\\project\\project1\\t1\\123.txt]的路径方式访问。
类加载器可以用
getClass().getClassLoader().getResourceAsStream("t1/123.txt");
  • 打赏
  • 举报
回复
一个是基于文件系统的 InputStream

一个是基于类加器的 InputStream

完全不一样。

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧