Properties类---与IO流相关的集合类

原创 2013年12月04日 17:05:11

该类是以键值对的形式保存的,Properties 可保存在流中或从流中加载。

1.getProperty(String key)方法和setProperty(String key,String value)方法
    
      getProperty(String key)方法根据键获得value值
     
     setProperty(String key,String value)方法将key/value保存到Properties集合中

     例:

public static void main(String[] args) throws Exception
     {
          Properties pro = new Properties();
          pro.setProperty("zhangsan","20");
          pro.setProperty("lisi","30");
          System.out.println(pro.getProperty("zhangsan"));
          System.out.println(pro.getProperty("lisi"));
     }

2.Set<String>  stringPropertyNames()
     返回所有的key,保存到set集合中
          例:
public static void main(String[] args) throws Exception
     {          
             Properties pro = new Properties();          
              pro.setProperty("zhangsan","20");         
               pro.setProperty("lisi","30");          
               pro.setProperty("wangwu","25");          
            Set<String> keys = pro.stringPropertyNames();              
             for(String key:keys){               
                        System.out.println(key+"="+pro.getProperty(key));         
                 }     
 }


3.load(InputStream in)和load(Reader reader)
     从输入流中加载key/value数据到Properties中,输入流从带有key/value的文件中读取后,再通过拆分把key和value通过调用setProperty(key,value)方法保存到Properties中

     (1).load(InputStream in)方法加载的原理
               例:
 public static void main(String[] args) throws Exception
     {          
         File file = new File("person.txt");          
         InputStream input = new FileInputStream(file);          
          Properties pro = new Properties();          
          load(pro,input);//这里pro被改变         
          //获取pro中所有的key          
         Set<String> keys = pro.stringPropertyNames();          
        for(String key:keys){               
                 System.out.println(key+"="+pro.getProperty(key));          
         }     
}     
public static void load(Properties pro,InputStream input)throws IOException {          
         //读取带有key/value的文件          
          BufferedReader reader = new BufferedReader(new InputStreamReader(input));          
         String line = null;         
            while((line = reader.readLine())!=null){               
                 //拆分key/value               
                String[] property = line.split("=");              
                //将key/value保存到pro中               
               pro.setProperty(property[0],property[1]);         
         }     
}



(2)理解了load()方法的原理后,就可以很明确的使用load()方法了
          例:
 public static void main(String[] args) throws Exception     {          
            File file = new File("person.txt");          
           BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));          
                     Properties pro = new Properties();          
                  //从输入流中加载属性文件信息         
                   pro.load(reader);          
                //获取所有的key          
               Set<String> keys = pro.stringPropertyNames();          
                 for(String key:keys){               
                        System.out.println(key+"="+pro.getProperty(key));         
         }    
 }
     
4.void store(OutputStream out,String comments)和void store(Writer  w,String comments)
     将Properties中setProperty(key,value)设置的key/value保存到输出流中,在这个方法中因为传入了输出流,所以在这个方法中直接调用了输出流中的write()方法,
     其实这个方法和下面的list()方法是一样的作用
     例:
public static void main(String[] args) throws Exception
     {
          Properties pro = new Properties();
          pro.setProperty("zhangsan","10");
          pro.setProperty("lisi","20");
          pro.setProperty("wangwu","30");
          PrintWriter pw = new PrintWriter(new FileOutputStream("demo.txt"));
           
          //这里不使用store()方法就不能加入到输出流中,就不能写入到文件中
          pro.setProperty("amazon","45");          //使用store()方法将property中的key/value保存到输出流中
          pro.store(pw,"");
         
          //这里一定要注意关闭
          pw.close();
     }
             

5.list(OutputStream out)和list(Writer w)
     通过输出流,将key/value输出,在list方法中传入了输出流,所以在list方法中会调用输出方法,所以直接使用这个方法就代表了不仅是将key/value列举出来,还会将key/value输出到目的地

     例:
 public static void main(String[] args) throws Exception
     {
          Properties pro = new Properties();
          pro.setProperty("zhangsan","10");
          pro.setProperty("lisi","20");
          pro.setProperty("wangwu","30");
          PrintWriter pw = new PrintWriter(new FileOutputStream("demo.txt"));
          //在list方法中会调用println()方法输出
          pro.list(pw);
          //这里一定要注意关闭
          pw.close();
     }

           





版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

黑马程序员_Java基础_IO流(File类和properties类相关操作)

------- android培训、java培训、期待与您交流! ---------- 一、IO流(File概述) File类: 用来将文件或者文件夹封装成对象,方便对文件与文件夹的属性信息进行操作...

JAVA之IO技术相关Properties类 存储配置文件信息

package ioTest.io3; /* * Properties存储配置文件信息 * 1.文件信息--------------------------- * 2.根据文件信息获取key和v...
  • HYM1987
  • HYM1987
  • 2014年05月04日 12:55
  • 1077

IO流和集合的交集Properties类的介绍。

Properties类继承了Hashtable,Hashtable实现了Map接口。该类的键值对 都是字符串。 Properties的构造方法:Properties pro = new Prop...

IO流——Properties类

/* Properties是hashtable的子类。 也就是说它具备map集合的特点。而且它里面存储的键值对都是字符串。 是集合中和IO技术相结合的集合容器。 该对象的特点:可以用于键值对形式的...

IO流——Properties类的应用

/* 用于记录应用程序运行次数。 如果使用次数已到,那么给出注册提示。 很容易想到的是:计数器。 可是该计数器定义在程序中,随着程序的运行而在内存中存在,并进行自增。 可是随着该应用程序的退出,该计...

java IO流 File类,Properties--20

File类用来将文件或者文件夹封装成对象 方便对文件与文件夹的属性信息进行操作 File对象可以作为参数传递给流的构造函数File类中的常见方法: 1,创建 boolean creat...

黑马程序员——IO流(Properties类)

黑马程序员——IO流(Properties类)

黑马程序员:Java基础总结----集合与IO的结合[Properties类]

黑马程序员:Java基础总结 集合与IO的结合[Properties类]  ASP.Net+Android+IO开发、.Net培训、期待与您交流! ...

黑马程序员——IO之文件,Properties集合的存取,其他类

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-一、文件   File类:用来将文件或者文件夹封装成对象,方便对文件与文件夹的属性信息进行操作。File对象可...

IO基础之Properties类、数据流、RandomAccessFile类、管道流和nio的简单说明

IO基础之Properties类、数据流、RandomAccessFile类、管道流和nio的简单说明
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Properties类---与IO流相关的集合类
举报原因:
原因补充:

(最多只允许输入30个字)