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