在Java web应用程序中,假设我想要获取一个XML文件的InputStream,它被放在CLASSPATH中(即在sources文件夹中),我该怎么做呢?
发布于 2009-04-27 12:08:39
ClassLoader.getResourceAsStream()
。
正如下面的评论所述,如果您处于多ClassLoader
环境中(例如单元测试、webapps等)。您可能需要使用Thread.currentThread().getContextClassLoader()
。参见http://stackoverflow.com/questions/2308188/getresourceasstream-vs-fileinputstream/2308388#comment21307593_2308388。
发布于 2010-11-04 11:48:33
ClassLoader.class.getResourceAsStream("/path/file.ext");
发布于 2009-04-27 12:26:30
这取决于XML文件的确切位置。它是在sources文件夹(在"default package“或”root“中)还是在与类相同的文件夹中?
对于前一种情况,您必须使用"/file.xml
“(注意前导斜杠)来查找文件,使用哪个类来查找它并不重要。
如果XML文件紧挨着某个类,那么只需要使用带有文件名的SomeClass.class.getResourceAsStream()
。
https://stackoverflow.com/questions/793213
复制相似问题