30:Properties类--hashtable的子类

java.util
类 Properties

java.lang.Object
java.util.Dictionary<K,V>
java.util.Hashtable<Object,Object>
java.util.Properties

public class Properties
extends Hashtable<Object,Object>
Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。

Properties是hashtable的子类
也就是说它具有map集合的特点,而且它里面存储的键值对都是字符串。

是集合中和IO技术相结合的集合容器。

该对象的特点:可以用于键值对形式的配置文件。
在加载数据时,需要数据有固定格式:键=值

void load(InputStream inStream)
从输入流中读取属性列表(键和元素对)。
void load(Reader reader)
按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)。
void loadFromXML(InputStream in)
将指定输入流中由 XML 文档所表示的所有属性加载到此属性表中。

String getProperty(String key)
用指定的键在此属性列表中搜索属性。
String getProperty(String key, String defaultValue)
用指定的键在属性列表中搜索属性。

Object setProperty(String key, String value)
调用 Hashtable 的方法 put。

Set<String> stringPropertyNames()
返回此属性列表中的键集,其中该键及其对应值是字符串,如果在主属性列表中未找到同名的键,则还包括默认属性列表中不同的键。

void store(OutputStream out, String comments)
以适合使用 load(InputStream) 方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流。
void store(Writer writer, String comments)
以适合使用 load(Reader) 方法的格式,将此 Properties 表中的属性列表(键和元素对)写入输出字符。

import java.io.*;
import java.util.*;

public class Demo {
 public static void main(String[] args) throws IOException{
//          setAndGet();
//          method_1();
      loadDemo();
 }
 public static void loadDemo()throws IOException
 {
      Properties prop=new Properties();
      FileInputStream fis=new FileInputStream("info.txt");
//          将流中的数据加载进集合
      prop.load(fis);
      prop.setProperty("asdf", "200");
      FileOutputStream fos=new FileOutputStream("info.txt");
      prop.store(fos,"haha");
      prop.list(System.out);

      fos.close();
      fis.close();
 }

//     演示,将流中的数据存储到集合中。
//     将info.txt中键值数据存储到集合中
/*
     1:用一个流和info.txt文件关联
 2:读取一行数据,将该行数据用“=”进行切割
 3:等号左边为键,右边为值,存储到properties集合中。
*/
 public static void method_1()throws IOException
 {
      BufferedReader bufr=new BufferedReader(new FileReader("info.txt"));
      String line=null;
      Properties prop=new Properties();

      while((line=bufr.readLine())!=null)
      {
           String[] arr=line.split("=");
           prop.setProperty(arr[0],arr[1]);
      }
      bufr.close();
      System.out.println(prop);
 }


 // 设置和获取元素
 public static void setAndGet() {
      Properties prop = new Properties();
      prop.setProperty("zhangsan", "30");
      prop.setProperty("lisi", "20");
//          获取一个值
/*          String value=prop.getProperty("lisi");
      System.out.println(value);*/
      prop.setProperty("lisi","34");
//          获取全部
      Set&lt;String> names=prop.stringPropertyNames();
      for(String s:names)
      {
           System.out.println(s+":"+prop.getProperty(s));
      }
 }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值