读取配置文件 , xxxproperties放在webroot/WEB-INF/classes/目录下
首先将配置文件转换成InputStream,有两种方式,原理一样,都是通过类加载器得到资源:
(1)InputStream inputStream = ThreadcurrentThread()getContextClassLoader()getResourceAsStream("xxproperties");
(2) InputStream inputStream =
thisgetClass() getClassLoader()getResourceAsStream( "xxproperties" );
调用对象的getClass()方法是获得对象当前的类类型,这部分数据存在方法区中,
而后在类类型上调用 getClassLoader()方法是得到当前类型的类加载器,我们知道在Java中所有的类都是通过加载器加载到虚拟机中的,而且类加载器之间存在父 子关系,就是子知道父,父不知道子,这样不同的子加载的类型之间是无法访问的(虽然它们都被放在方法区中),所以在这里通过当前类的加载器来加载资源也就 是保证是和类类型同一个加载器加载的。
最后调用了类加载器的getResourceAsStream()方法来加载资源。
(3) 然后加载配置文件,读取属性值
Properties prop = new Properties();
propload(input);
String value = propgetProperty("PropertyName");
inputclose();
java文件中获得路径 ThreadcurrentThread()getContextClassLoader()getResource("") //获得资源文件(class文件)所在路径 ClassLoadergetSystemResource("") Class_NameclassgetClassLoader()getResource("") Class_Nameclass getResoujava如何获取jsp页面上传的文件路径
这个要看你是怎么实现的TreeModel,无非三种方式:
1 自己实现TreeModel,这样的话,节点对象就可以直接使用File对象。获取路径也就不成问题了。
2 自己实现treeNode接口,这样的话,可以在treeNode接口中增加File对象的引用。
3 用defaultMutableTreeNode来实现的,那么,可以使用setUserObject的方法,将File对象设置在TreeNode中,然后就可以在得到节点后,使用getUserObject来获取了。
大致如此吧,估计你用的是第3种,因为很少有人愿意重写TreeCellRenderer的,呵呵。但最佳的办法其实就是第一种。
classgetResource("/")getPath()这个方法是获取的当前类所在的根目录,这个根目录在项目中就是src下面,你eclipse中,有的项目运行编译后,会把生成的class文件放到bin文件夹中,我是会maven管理的项目,输出就是:/C:/Workspace/JavaTest/target/classes/。你的视频中,可能它运行java文件不是在eclipse或IDE中运行的,而是在命令窗口中运行的,所以会和你输出的不一样。
1、资源文件放在服务器下是完全没问题的,一个网站发布后也不会随便更新的。
2、如果资源文件过多、或都过大,是建议放到服务器下的,会占用服务器过大的空间,你可以在tomcat中再配置一个虚拟路径,指向一个盘符下一个文件夹(如:d:/images),在
tomcat
的
serverxml
中设置,然后你就可以用你的服务器地址+/img/+资源路径(注意:这个资源路径是相对d:/images的相对路径)去访问资源了
具体设置方法:
在conf目录下的serverxml文件里的里面加入
例如:
<
context
path=”test”
docbase=”f:\webroot\”/>
以上就是关于Java 获取配置文件路径全部的内容,包括:Java 获取配置文件路径、java如何获取jsp页面上传的文件路径、Java资源管理器中树形文件目录的路径取得问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)