很多情况下,我们需要在JavaBean、Servlet中获得当前的目录路径,比如载入配置文件,上传文件到服务器等。
1.载入jdbc.properties
1)ClassLoader的getResourceAsStream("XXX")
InputStream in=XXX.class.getClassLoader().getResourceAsStream("jdbc.properties");
getResourceAsStream()会到classes目录下找jdbc.properties文件,所以在工程项目中,我们一般把它放在src目录下。
2)Class.getResourceAsStream("/XXX")
XXX.class.getResourceAsStream("/jdbc.properties");
两种方式的共同点就是:jdbc.properties都应该在classes下,也就是项目的src目录
不同点就是:ClassLoader.getResourceAsStream(“XXX”)中参数不以"/"开头,而Class.getResourceAsStream("/XXX") 终参数以"/"开头
2.在Javabean中获得路径
1)获得当前类XXX.class文件的URI目录,不包括自己:XXX.class.getResource("")
如:在类com.test.XXX中取得项目的根绝对路径
URL url=XXX.class.getResource("");
String filename=url.getFile();
String projectRootPath=new File(filename,"../../../../").getCanonicalPath();
//main函数中测试
//filename:/d:/workspace/testproject/build/calsses/com/test/
//projectRootPath:d:/workspace/testproject
//tomcat中测试
//filename:/d:/tomcat/webapps/testproject/WEB-INF/calsses/com/test/
//projectRootPath:d:/tomcat/webapps/testproject
2)获得的是当前的classpath的绝对URI路径:XXX.class.getResource("/")
如:在类com.test.XXX中取得项目的根绝对路径
URL url=XXX.class.getResource("/");
String filename=url.getFile();
String projectRootPath=new File(filename,"../../").getCanonicalPath();
//main函数中测试
//filename:/d:/workspace/testproject/build/calsses/
//projectRootPath:d:/workspace/testproject
//tomcat中测试
//filename:/d:/tomcat/webapps/testproject/WEB-INF/calsses/
//projectRootPath:d:/tomcat/webapps/testproject
3)获得的是当前ClassPath的绝对URI路径: //推荐使用
Thread.currentThread().getContextClassLoader().getResource("");
4)获得的是当前ClassPath的绝对URI路径:
XXX.class.getClassLoader().getResource("");
5)获得的是当前ClassPath的绝对URI路径: //推荐使用
ClassLoader.getSystemResource("");
6)当前用户目录的相对路径:System.getProperty("user.dir") //不推荐使用
3.在servlet中获得路径
1)获得相对路径:
this.getServletContext().getResource("/").getPath();
//输出:/localhost/testproject/
2)String strPath2=this.getServletContext().getRealPath("/");
//输出:d:/tomcat/webapps/testproject/
4.在开发过程中,我们经常会遇到读取配置文件的情况,对于配置文件的读取,根据环境等情况又各有不同,一般情况下,如果从非jar包中使用相对/路径,比较简单,就不在累述了,而在很多
情况下,我们需要把我们的class打包成jar文件,进行使用,这时就会发现,我们先前如果没有考虑到这些,可能就行不通了,那么,该如何解决呢?方法如下
:
有如下路径 :
Web-info--|-->classes--->conf-->config.properties
|-->lib
此时加入我们需要读取config.properties,在不使用jar包时,使用如下方式读取,不失为一种方法:
File f = new File(this.getClass().getResource("/").getPath());
f = new File(f.getPath() + "/conf/config.properties");
注:f.getPath()即为当class所在的绝对路径。如:c:\javasrc\web-inf\classes
然后,对文件对象进行处理,就能把配置信息读取出来了,但是加入如上class被打包成jar文件,那么,在程序执行到这里时,就会无法找到配置文件,那么该如何处理呢?
处理方法如下:
String s_config="conf/config.properties";
InputStream in = ClassLoader.getSystemResourceAsStream(s_config);
if( in == null ){
System.out.println( " 打开 " + s_config + "失败!" );
}else
{
Properties properties = new Properties();
properties.load(in);
//
//接下来就可以通过properties.getProperty(String obj)方法对进行配置信息读取了
}
分享到:
相关推荐
路劲
Android 开发中,获取手机相册中的图片路径是一个常见的问题,以下将详细介绍如何在 Android 中打开手机相册获取图片路径。 一、权限申请 在 Android 中,访问外部存储需要申请权限,包括读取和写入外部存储的权限...
蚁群算法(Ant Colony Algorithm) 蚁群算法是一种 metaheuristics 算法,仿真蚂蚁觅食的过程,以解决组合优化问题。...其广泛的应用领域和灵活的算法结构,使其在计算机科学和操作研究领域中扮演着越来越重要的角色。
本文将详细介绍Java中获取文件路径的各种方法及其应用场景,帮助开发者更好地理解和掌握这些技巧。 #### 二、基本概念 在深入讨论之前,我们需要了解几个基本概念: - **Classpath**: 是Java运行环境的一个重要...
本篇文章将详细介绍如何在Unity应用中获取外置SD卡的路径,并结合PicoVR SDK,实现适用于VR场景的打包和安装。 首先,我们要明确在Android平台上,外部存储通常指的是SD卡或者是设备提供的可移除存储空间。在...
在IT行业中,尤其是在网页爬虫和自动化测试领域,获取网页上的XPath和CSS选择器路径是一项基本且重要的技能。XPath和CSS选择器是两种常见的定位HTML元素的方法,它们被广泛用于网页抓取、网页自动化和测试工具中。这...
内容简介:上海路劲佘山院子住宅建筑研发方案( PDF+171页)。图纸包含:项目概况、示范区范围、建筑部分、室内部分、景观设计、设计理念、解决策略、项目区位、方案思路、案例研究、设计寓意、形体生成、概念剖面、...
传入指定文件或者文件夹路劲数组进行压缩,支持混合的文件夹或者文件。速度快,不需要额外引入包
标题中的"zui-duan.rar_最小路_权值路劲"直指这一核心概念。最小路径问题通常出现在路由选择、物流规划、电路设计等场景中,目标是找到从一个指定起点到其他节点之间具有最小总权重的路径。 在这个问题中,“权值”...
pso和ga混合算法用来解决路劲规划问题
例如,Python的os模块提供了os.path.abspath()来获取绝对路径,os.path.dirname()获取路径中的目录部分,os.path.basename()获取文件名。理解并熟练使用这些函数是高效编程的基础。 5. 路径遍历:在处理大量文件时...
stata 1.2 stata文件路劲02.mp4
检测一个url路劲是否有效,数据库中保存的url有的是错误的,有的可能过一段就ping不通,所以适时检测URL很有必要
【引言】 随着我国经济的快速发展,房地产市场已经成为中国经济的重要组成部分。...通过创新促销手段、精准定位、加强线上营销以及提升服务质量,路劲城有望在激烈的市场竞争中找到新的发展方向,实现业绩的持续增长。
通和路劲商鼎路项目提案.pptx
在Java编程中,获取项目文件路径是常见的需求,特别是在处理资源文件、配置文件或进行文件操作时。这里我们将深入探讨几种不同的方法来实现这一目标,同时解析每种方法的适用场景和返回路径的特点。 1. `this....
本文主要介绍的是如何在Flash中创建沿路径运动的动画,即“路劲动画”。这是一种在动画制作中常见的技术,允许对象按照预先绘制的路径进行动态移动,为动画增加更多的生动性和创意。 1. **引导层的概念**: - 引导...
在前端开发过程中,处理富文本内容并提取其中的信息是一个常见的需求,尤其是获取富文本中的第一张图片URL,这对于生成文章预览图或缩略图等场景非常有用。本文将介绍如何使用JavaScript和正则表达式来获取富文本中...
在计算机科学领域,寻找最短路径问题是一种常见的优化问题,特别是在网络分析、图论和算法设计中占有重要地位。本文将深入探讨如何利用分支限界法(Branch and Bound)来解决这一问题,以及如何用纯C语言实现这一...
- 获取当前开放列表中的最佳节点,并将其移出开放列表,加入闭合列表。 - 判断该节点是否为目标节点,如果是,则记录搜索成功;如果不是,则继续搜索。 ### A星算法的启发式函数 文件中提到的`GoalDistanceEstimate...