Properties类随笔

1. 体系介绍

  Properties类继承自HashTable,勉强属于集合框架体系一员,键值对形式存储数据,当然键肯定是唯一的,底层哈希表保证键的唯一,此类一般用于表示配置文件.

2. 基本用法

  由于此类继承HashTable,所以基本的集合操作还是相同的.比如put(),get()等,当然这个肯定不是常用的,在此只介绍Properties特殊的功能.

  •  Object setProperty(String key, String value)  : 存入数据.严格要求键值对类型都是字符串
  •  String getProperty(String key)  :按照键取数据,.严格要求键值对类型都是字符串
  •  Enumeration<?> propertyNames()   :获取所有键的列表
  •  Set<String> stringPropertyNames() : 获取所有键的列表
  •  void store(OutputStream out, String comments)  : 与IO结合,使用字节输出流以键值对形式持久到磁盘,第二个参数是描述..可null
  •  void store(Writer writer, String comments)   : 与IO结合,使用字符输出流以键值对形式持久到磁盘,第二个参数是描述..可null
  •  void load(InputStream inStream)   : 与IO结合,使用字节输入流从磁盘加载到Properties对象中
  •  void load(Reader reader)    : 与IO结合,,使用字符输入流从磁盘加载到Properties对象中

  

package com.io;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.Writer;
import java.util.Enumeration;
import java.util.Properties;
import java.util.Set;

/**
 * 演示Properties类的使用
 * @author 王庆华
* @age 18
* @DateTime 2017年8月31日 16:08:56
*/ public class PropertiesDemo2 { public static void main(String[] args) throws IOException { Properties pro1 = new Properties(); //Object setProperty(String key, String value):插入元素 pro1.setProperty("name", "陆离"); pro1.setProperty("age", "19"); //String getProperty(String key) :获取元素 System.out.println(pro1.getProperty("name"));//陆离 //Enumeration<?> propertyNames():获取所有键的集合 Enumeration<?> names = pro1.propertyNames(); while(names.hasMoreElements()){ System.out.println(names.nextElement());//age name } //Set<String> stringPropertyNames() :获取所有String类型的键的集合 Set<String> names2 = pro1.stringPropertyNames(); System.out.println(names2);//[age, name] //void list(PrintStream out) :将Properties对象的所有键按照字节打印流输出写入到磁盘 // PrintStream ps = new PrintStream("pro.properties"); // pro1.list(ps); // ps.close(); //void list(PrintWriter out) :使用字节流 // PrintWriter pw = new PrintWriter("pro.properties"); // pro1.list(pw); // pw.close(); // void store(OutputStream out, String comments) : 与IO结合,使用字节输出流以键值对形式持久到磁盘,第二个参数是描述..可null OutputStream out = new FileOutputStream("pro.properties"); pro1.store(out, "测试demo"); out.close(); /* * pro.properties文件内容如下: * #\u6D4B\u8BD5demo * #Thu Aug 31 15:56:53 CST 2017 * age=19 * name=\u9646\u79BB */ // void store(Writer writer, String comments) : 与IO结合,使用字符输出流以键值对形式持久到磁盘,第二个参数是描述..可null Writer wr = new FileWriter("pro.properties"); pro1.store(wr, null); wr.close(); //void load(InputStream inStream) : 与IO结合,使用字节输入流从磁盘加载到Properties对象中 Properties pro2 = new Properties(); pro2.load(new BufferedInputStream(new FileInputStream("pro.properties"))); System.out.println(pro2); // void load(Reader reader) : 与IO结合,,使用字符输入流从磁盘加载到Properties对象中 Properties pro3 = new Properties(); pro3.load(new BufferedReader(new InputStreamReader(new FileInputStream("pro.properties")))); System.out.println(pro3); } }

总结

  此类很常用

 

 

         

 

posted on 2017-08-31 16:04  Eggsblue  阅读(129)  评论(0编辑  收藏  举报

导航