- /*
- Properties是hashtable的子类
- 也就是说它具备map集合的特点,而且它里面存储的键值对都是字符串
- 是集合中和IO技术相结合的集合容器
- 该对象的特点:可以用于键值对形式的配置文件
- */
- import java.io.*;
- import java.util.*;
- class PropertiesDemo
- {
- public static void main(String[] args) throws IOException
- {
- loadDemo();
- }
- public static void loadDemo()throws IOException{ //简化method()方法
- Properties prop = new Properties();
- FileReader fr = new FileReader("name.txt");
- prop.load(fr); //用load方法
- //System.out.println(prop);
- prop.list(System.out); //列出集合中键和值
- prop.setProperty("wangwu","33"); //修改属性,但只在内存中
- FileWriter fw = new FileWriter("name.txt");
- prop.store(fw,""); //将内存中的属性写入文件
- prop.list(System.out);
- fw.close(); //关闭流
- fr.close(); //关闭流
- }
- public static void method_1()throws IOException //将已有文件中的键值数据存到集合中
- {
- BufferedReader bufr = new BufferedReader(new FileReader("name.txt")); //创建流和name.txt关联
- String line = null;
- Properties prop = new Properties(); //创建一个集合
- while((line=bufr.readLine())!=null){ //当读取一行不为空时
- String[] arr = line.split("="); //切割line中数据以=号为根据
- prop.setProperty(arr[0],arr[1]); //等号左边为键,右边为值
- }
- bufr.close(); //关闭流
- System.out.println(prop); //输出集合中的数据
- }
- public static void setAndGet(){
- Properties prop = new Properties();
- prop.setProperty("zhangsan","20"); //设置键和值
- prop.setProperty("lisi","30");
- //System.out.println(prop);
- String value = prop.getProperty("lisi"); //通过键来寻找值
- //System.out.println(value);
- prop.setProperty("lisi","40"); //把lisi的值改成40
- Set<String> names = prop.stringPropertyNames(); //把键存储到集合
- for(String s : names){ //增强for 循环遍历name集合
- System.out.println(s+"++"+prop.getProperty(s)); //输出键和值
- }
- }
- }
复制代码 欢迎指出错误和交流
|
|