最近在看ZK(ZooKeeper)的源码,发现源码中用到了Properties类加载配置信息,所以小研究一下:
.properties文件是一行一行以等号分割的键值对,允许有多余的空格(所以经常取出来要用String的trim方法去除首尾多余的空格)。
下面看个例子就行了,Properties类的使用很简单:
InputStream inStream;
try {
inStream = new FileInputStream(new File("./file/test.properties"));
Properties myProperties=new Properties();
myProperties.load(inStream);
for(Object key : myProperties.keySet()){
System.out.println(key+" = "+myProperties.get(key));
}
OutputStream outputStream1=new FileOutputStream(new File("./file/t1.xml"));
OutputStream outputStream2=new FileOutputStream(new File("./file/t2.properties"));
myProperties.storeToXML(outputStream1, "wjy's comment");
myProperties.put("nihao", "1000");
//myProperties.put("nihao", 1000); 报错!!!
myProperties.store(outputStream2, "my comment");
inStream.close();
outputStream1.close();
outputStream2.close();
myProperties.loadFromXML(new FileInputStream(new File("./file/t1.xml")));
System.out.println("以下为从xml文件导入的:");
for(Object key : myProperties.keySet())
{
System.out.println(key+" = "+myProperties.get(key));
}
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//运行结果:
wjy = nb
以下为从xml文件导入的:
nihao = 1000
haha = good
wjy = nb
最后给test.properties,t1.xml和t2.properties文件截个图:
test.properties:
t1.xml:
t2.properties: