何时在java中使用getContextClassLoader()。getResourceAsStream?

时间:2017-12-06 10:44:07

标签: java jsp servlets web properties

我有一个我遇到的网络应用程序

InputStream iStream= Thread.currentThread().getContextClassLoader().getResourceAsStream("Test.Properties");

我试图了解如果我写

会有什么不同
Properties p = new Properties();
p.load(new BufferedReader(new FileReader("Test.properties")))

任何人都可以告诉我这两种方法有何不同?

1 个答案:

答案 0 :(得分:0)

如果我理解正确,那么区别在于getResourceAsStream()方法对于属性文件的classspath看起来不错。

文件阅读器可以从文件系统中的任何位置读取文件,只要您明确拥有该路径的权限即可。

编辑:它将使用Thread自己的类加载器,但是只要你不在其他线程中共享任何资源,你就可以了。

我个人喜欢getResourceAsStream方法,因为它允许我简单地将文件放入我的maven项目中的文件夹中,例如/ src / main / resources,无论我的应用程序如何打包,我都可以简单地检索。