黑马程序员技术交流社区
标题: 加载配置文件的方式 [打印本页]
作者: zhangyangLengen 时间: 2014-11-14 17:24
标题: 加载配置文件的方式
3.2进行加载配置文件的方法:
1:通过FileInputStream:进行读取文件
对于这个用文件流读取,一定要绝对路径,如果你将软件开发好了,你不可能将源文件给人家的,只是将bin目录给人家,所以开发时一定要将配置文件放在对应的包下面,而对应的bin目录也有对应的文件。如果用相对路径,是飘忽不定的,因为用户可能在不同的路径下运行class文件,那么你读取的这个文件的路径怎么定,所以一定要绝对路径,但是有一点来了,如果用绝对路径:”d://myClass.txt” 如果用户没有”d:”盘怎么办。所以这个方式并不可取,在实际的开发的情况下,一般很少用这个方法的。
2:通过类加载器进行加载:
但是也分不同的情况:
方式1:相对类加载器的根目录:(此时在路径的最前面加不加 \ 没关系)
ReflectTest2.class.getClass()
.getClassLoader().getResourceAsStream("cn/itcast/day2/ wrongProgrammeFile/config.properties");
方式2:
相对于类的class文件的目录(如果class文件的目录没 有,会到类加载器的根目录中去找)(此时在路径的最前面加不加 \ 有 关系)
ReflectTest2.class.getResourceAsStream("config.properties");
如果将该文件放到该包的上一级包中:那么如下
ReflectTest2.class.getResourceAsStream("../config.properties")
如果将该文件放到该包的同一级别的另外一个resource的包中
ReflectTest2.class.getResourceAsStream("../resource/config.pr operties");
如果将该文件放到该包的子包中:
ReflectTest2.class.getResourceAsStream("resource/config.pro perties");
在路径前面加“/”不行;
ReflectTest2.class.getResourceAsStream("/resource/config.pro perties");
如果将该配置文件防止在其他包中,必须使用据对路径加上“\”,但是相对于bin目录: ReflectTest2.class.getResourceAsStream("/cn/itcast/day2/config.properti es");
作者: wf111sxwf 时间: 2014-11-14 18:18
总结的好啊 学习了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |