A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© z13561291 中级黑马   /  2015-11-21 14:54  /  443 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. /*
  2. Properties是hashtable的子类
  3. 也就是说它具备map集合的特点,而且它里面存储的键值对都是字符串
  4. 是集合中和IO技术相结合的集合容器
  5. 该对象的特点:可以用于键值对形式的配置文件
  6. */
  7. import java.io.*;
  8. import java.util.*;
  9. class  PropertiesDemo
  10. {
  11.         public static void main(String[] args) throws IOException
  12.         {
  13.                 loadDemo();
  14.         }
  15.         public static void loadDemo()throws IOException{ //简化method()方法
  16.                 Properties prop = new Properties();
  17.                 FileReader fr = new FileReader("name.txt");
  18.                 prop.load(fr);                                                                 //用load方法
  19.                 //System.out.println(prop);
  20.                 prop.list(System.out);                       //列出集合中键和值
  21.                 prop.setProperty("wangwu","33");                         //修改属性,但只在内存中
  22.                 FileWriter fw = new FileWriter("name.txt");                                                          
  23.                 prop.store(fw,"");                                                         //将内存中的属性写入文件
  24.                 prop.list(System.out);                                                
  25.                 fw.close();                                                                         //关闭流
  26.                 fr.close();                                  //关闭流
  27.         }
  28.         public static void method_1()throws IOException  //将已有文件中的键值数据存到集合中
  29.         {
  30.                 BufferedReader bufr = new BufferedReader(new FileReader("name.txt")); //创建流和name.txt关联
  31.                 String line = null;                                                                                                       
  32.                 Properties prop = new Properties();                 //创建一个集合
  33.                 while((line=bufr.readLine())!=null){     //当读取一行不为空时
  34.                         String[] arr = line.split("=");      //切割line中数据以=号为根据
  35.                         prop.setProperty(arr[0],arr[1]);     //等号左边为键,右边为值
  36.                 }
  37.                 bufr.close();                            //关闭流
  38.                 System.out.println(prop);                //输出集合中的数据
  39.         }
  40.         public static void setAndGet(){
  41.                 Properties prop = new Properties();
  42.                 prop.setProperty("zhangsan","20");                                         //设置键和值
  43.                 prop.setProperty("lisi","30");
  44.                 //System.out.println(prop);
  45.             String value = prop.getProperty("lisi");                         //通过键来寻找值
  46.                 //System.out.println(value);                               
  47.                 prop.setProperty("lisi","40");                                                 //把lisi的值改成40
  48.                 Set<String> names = prop.stringPropertyNames();                 //把键存储到集合
  49.                 for(String s : names){                                                                 //增强for 循环遍历name集合
  50.                         System.out.println(s+"++"+prop.getProperty(s));  //输出键和值
  51.                 }
  52.         }
  53. }
复制代码
欢迎指出错误和交流

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马