栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

getResourceAsStream在新环境下失败?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

getResourceAsStream在新环境下失败?

这取决于您如何获取资源。当您在其中使用

ClassLoader
as时:

InputStream stream= getClass().getClassLoader().getResourceAsStream("/com/thinkplexx/lang/de/general.xml");

前导“ /”是没有意义的。因此,正确的格式是“ com / thinkplexx / lang / de / general.xml”。

如果是,而是使用“类”,例如:

InputStream stream= getClass().getResourceAsStream("/com/thinkplexx/lang/de/general.xml");

您得到不同的行为。该

Class.getResourceAsStream
会考虑类,而领先“”
相对于包含类的包。以“。”开头的资源。是绝对的,或相对于jar根解析的。

因此,如果

this
是对的引用
com.example.SomeThing
,则预期的行为是:

getClass().getResourceAsStream("/a/b/c.xml")  ==> a/b/c.xmlgetClass().getResourceAsStream("a/b/c.xml")  ==> com/example/a/b/c.xmlgetClass().getClassLoader().getResourceAsStream("a/b/c.xml")  ==> a/b/c.xmlgetClass().getClassLoader().getResourceAsStream("/a/b/c.xml")  ==> Incorrect

Maven2松懈并允许使用最后一种形式。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/498622.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号