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流相关的类的分类和总结

关于Java的IO流以前也总结过不少,根据API画出了IO流的类结构图,也写了不少相关的程序 但是没有对IO流做一个综合型的总结,最近在CSDN和ITeye上看了不少对IO流的总结,感觉有必要 抽...
  • QingChunBuSanChang
  • QingChunBuSanChang
  • 2014年09月29日 17:09
  • 1863

java基础复习(集合、泛型、IO流、多线程、Junit 、内省 、Properties、 路径问题)

集合---|Collection: 单列集合 ---|List: 有存储顺序, 可重复 ---|ArrayList: 数组实现, 查找快, 增删慢 ...
  • guanhang89
  • guanhang89
  • 2016年04月25日 11:29
  • 4277

【Java.IO】I/O 流的类体系结构

。。。
  • robinjwong
  • robinjwong
  • 2014年09月26日 17:08
  • 2027

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

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

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

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

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

Properties类继承了Hashtable,Hashtable实现了Map接口。该类的键值对 都是字符串。 Properties的构造方法:Properties pro = new Prop...
  • liuhenghui5201
  • liuhenghui5201
  • 2012年12月17日 18:02
  • 1512

小东吖 之 java File字段Properties类 及 IO流

一.File字段 在System中的方法 getProperties() 确定当前的系统属性。 getProperty(String key) 获取指定键指示...
  • qq_34936541
  • qq_34936541
  • 2018年01月03日 20:03
  • 33

day25-序列化,common.io工具类,properties,打印流

今日内容介绍 1、Properties集合 2、序列化流与反序列化流 3、打印流 4、commons-IO ###01Properties集合的特点 * A: Proper...
  • qq_36698213
  • qq_36698213
  • 2017年12月07日 18:15
  • 24

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

黑马程序员:Java基础总结 集合与IO的结合[Properties类]  ASP.Net+Android+IO开发、.Net培训、期待与您交流! ...
  • u010913699
  • u010913699
  • 2013年07月04日 17:49
  • 718

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

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-一、文件   File类:用来将文件或者文件夹封装成对象,方便对文件与文件夹的属性信息进行操作。File对象可...
  • yuefanyishi
  • yuefanyishi
  • 2015年08月30日 22:58
  • 165
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Properties类---与IO流相关的集合类
举报原因:
原因补充:

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