
关于读取Properties文件的相对路径问题,怎么写是正确的
1个回答
展开全部
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");
读取资源文件一般根据上下文环境分为两种情况。
第一种是非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");
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询