使用Properties读写属性文件
Properties类是Hashtable类的子类,该对象在处理属性文件的时候特别方便,Properties类可以把map对象和属性我呢间关联起来,但是由于属性文件里的属性名和属性值只能是字符串类型,所以Properties里的key,value也只能用字符串。Properties类提供如下三个方法来修改Properties里的key,和value值
(1):String getProperty(String key):获取Properties中指定属性名对应的属性值,类似于getProperty(key);方法
(2):String getProperty(String key,String defaultValue):该方法也是通过key值来获取属性文件中对应的value值,但是若不存在指定的key值时候,则返回默认值
(3):void load(InputStream instream):从属性文件中加载键-值对,然后将键-值对追加到Properties中,
(4):void store(OutPutStream out,String comments):将properties中的键-值对加载到属性文件中。
实例代码如下:
public abstract class PropertiesTest {
public static void main(String[] args) throws FileNotFoundException, IOException {
//属性集合对象
Properties prop1= new Properties();
prop1.setProperty("username", "duanhongyan");
//添加属性
prop1.setProperty("password", "123");
//修改属性
prop1.setProperty("password", "12");
//将Properties集合保存到流中
prop1.store(new FileOutputStream("c:/a.ini"), "comment line");
Properties prop2= new Properties();
prop2.setProperty("gender","male");
//将属性文件装载到prop2对象中
prop2.load(new FileInputStream("c:/a.ini"));
System.out.println(prop2);
}
}
输出结果如下:在c盘中生成一个文件a.ini。里面内容如下:
#comment line
#Tue Mar 24 17:15:35 CST 2015
password=12
username=duanhongyan
输出Porp2的结果是:{password=12, gender=male, username=duanhongyan}
Properties也可以将key-value的值存到xml文件中,当然也可以从xml文件中加载key-value值
Properties中的store(OutputStream out,String comment);这个方法中的comment是一个注释,在生成文件的时候会将该comment注释写到属性文件的第一行中