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

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

InputStream in = new FileInputStream(fileName);
有啥不同?

作者: dreamhunter_lan   发布时间: 2011-06-12

一个是基于文件系统的 InputStream

一个是基于类加器的 InputStream

完全不一样。

作者: bao110908   发布时间: 2011-06-12

引用 1 楼 bao110908 的回复:
一个是基于文件系统的 InputStream

一个是基于类加器的 InputStream

完全不一样。


+1

表现为寻址方式不一样

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

作者: trocp   发布时间: 2011-06-12