关于读取Properties文件的相对路径问题,怎么写是正确的

 我来答
就烦条0o
2018-07-26 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46492
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
FileInputStream只能定位绝对路径,所以你填入相对路径当然找不到。
读取资源文件一般根据上下文环境分为两种情况。
第一种是非WEB应用的环境中,只需要简单的通过类加载器的getResourceAsStream方法读取。
例如,classpath根目录下有一个setting.properties文件,可以这样读取
Java代码 收藏代码
InputStream is = Thread.currentThread().getClass().getResourceAsStream("/setting.properties");
第二种是WEB应用的环境中,因为应用包含在了Servlet 容器中,所以情况相对来说要复杂一些。
同上一样,读取classpath中的资源,依然通过类加载读取,但是通过上下文的类加载器中去读。
例如,
Java代码 收藏代码
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("/setting.properties");
读取WebContent目录中的情况又不一样了,不能通过类加载器读取,需要通过ServletContext去读。
例如,
Java代码 收藏代码
InputStream is = request.getServletContext().getResourceAsStream("/WEB-INF/setting.properties");
地瓜说机
2017-10-28 · TA获得超过2.9万个赞
知道大有可为答主
回答量:2.3万
采纳率:91%
帮助的人:1.2亿
展开全部
相对路径的话,可以先获取到当前文件的编译路径,之后在找到想找文件的路径的思路来实现。
举例:
XMLS.class.getClass().getResourceAsStream("/test/test.txt");
解释:XMLS.class.getClass()是获取当前的类编译路径,之后通过getResourceAsStream的形式即可找到要读取的文件的路径。
备注:这个方法中后面的路径也可以通过截取的形式来进行路径获取,实现原理都是找到当前类路径,之后通过相对位置找到另外文件路径。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式