前序:项目包含哪些路径?
1. 开发项目根路径,通常会在IDE里面新建一个工程,在磁盘上有对应的文件夹。
2. 编译根路径,将开发好的项目编译后,会产生一个新的文件夹。或bin;output;等文件夹。
3. CLASSPATH路径,java设置环境变量时会设置一个classpath这个路径就是真正执行java时的根路径。执行项目时,会将编译后的根路径追加到java环境变量的classpath中;也可以手动再追加其他目录到classpath。
读取配置文件是最常用的功能。读取的配置通常有2种情况:
项目的文件结构如上图
1. InputStream in = Test.class.getResourceAsStream(“/test/test.properties”)
当使用/开始的文件名为绝对资源名,读取的路径是classpath根路径,后面使用绝对路径
使用相对路径则从当前Test.class的包下面找对应的配置文件。这点我尝试失败了。
读取完成后,可以加在到properties对象里。
2. InputStream in = this.class.getClassLoader().getResourceAsStream(“test/test. properties”);
使用相对路径从根目录读取文件。
不能使用”/”的绝对资源名。
3. ResourceBundle resource = ResourceBundle.getBundle(“test/test”);
ResourceBundle通常用于国际化,但在读取配置文件时也能使用。使用相对路径从根目录读取文件。
不能使用”/”的绝对资源名。
4. ResourceBundle和Properties的使用区别:
最主要的区别是ResourceBundle不能修改值,Properties可以修改value并重写入文件。
ResourceBundle可以根据文件后缀的不同(指语言地区),读取不同的配置文件。Properties只能读取指定的文件。
fido chen
2015/10/22