A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhangyangLengen 中级黑马   /  2014-11-14 17:24  /  762 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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");

1 个回复

倒序浏览
总结的好啊  学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马