Thursday, October 12, 2006

Java中获取配置/资源文件

关键字: java 获取 配置文件 资源文件 Properties ClassLoader

几乎所有的系统都需要通过获取配置/资源文件来方便配置系统
但怎样获取资源文件呢

java的应用通常把配置文件和工程中的其他class放在一起(如log4j),原因是可以方便的使用classLoader的 getResourceAsStream()方法获取资源(其实java内部就是这样来
load class的),下面是一个简单例子:

比如你把文件(abc.properties)放到com.yourcompany.common包里面,在确保classpath包括该包的情况
下就可以按下面的方法获取资源

ClassLoader cl = this.getClass().getClassLoader();
InputStream is = cl.getResourceAsStream("com/yourcompany/"+abc.properties)

如果abc.properties是一个标准的properties文件的话 , 假设它的内容如下:

messageA = Ok!

则可以这样获取配置信息:
Properties props = new Properties();
props.load(is);
String messageA = props.getProperty("messageA ");

则messageA就会等于 "Ok"

当然properties也可以是XML格式,只要他符合http://java.sun.com/dtd/properties.dtd的规范并且声明了DOCTYPE declaration,就可以用props.loadFromXML(InputSteam in)方法载入property

ps:property 也提供store()和storeToXML方法保存属性
关于classLoader也可以看看 《classloader相关基础知识》 这个文章

No comments: