在进行Properties文件的读取和写入操作之前,我们得先了解什么是Properties文件:
properties是一种资源属性文件。 这种文件以键值对key=value的格式存储内容 ,每一行都是一个键值对
Properties文件的读取:
当然,我们仍然可以利用BufferedInputStream缓冲输入流传入FileInputStream作为数据源使用read()方法对Properties文件进行内容读取,但是这样操作我们无法通过键来获取值,失去了properties文件以键值对key=value的格式存储的意义
在Java中可以使用Properties类来读取这个文件,该类继承自Hashtable,因此可以通过键来获取值
public
class Properties extends Hashtable<Object,Object> {
...
}
首先利用BufferedInputStream缓冲输入流传入FileInputStream作为数据源,然后创建一个Properties对象,再调用Properties类的load()方法将“输入流”加载至Properties集合对象中
这时就可以通过get()方法通过键(key)获取值(value)了
public class Input {
public static void main(String[] args) {
try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream("D:\\琐碎\\999.properties"))) {
Properties props=new Properties();
//将“输入流”加载至Properties集合对象中
props.load(bis);
System.out.println(props);
//根据key来获取value
System.out.println(props.get("f1"));
System.out.println(props.get("f2"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Properties文件的写入:
仍然是先要创建一个Properties对象,然后调用put()方法添加元素,
再利用BufferedOutputStream缓冲输入流传入FileOutputStream作为数据源
最后通过Properties类的store()方法将Properties集合中的键值对,写入*.properties文件。
try {
Properties props=new Properties();
props.put("f1", "5665");
props.put("f2", "55665");
props.put("f3", "55665");
props.put("f4", "56465");
props.put("f5", "56265");
props.put("f6", "56265");
props.put("f7", "56265");
props.put("f8", "56265");
try(BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("D:\\琐碎\\888.properties"))){
props.store(bos, "注释");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}