20:File类与IO流-----Properties

一:概述;

java.util.Properties 继承于Hashtable,来表示一个持久的属性类,它使用键值结构存储数据,每个键及其对应值都是一个字符串。该类也被许多java类使用,比如获取系统属性,System.getProperties方法就是返回一个Properties对象。
构造方法:

public Properties();创建一个空的属性列表。

基本的存储方法:

public Object setProperty(String key,String value);保存一对属性
public String getProperty(String key);使用此属性列表中指定的键搜素属性值。
public Set<String> StringPropertyNames();所有键的名称的结合。

代码:

package Demo06;

import java.util.Properties;
import java.util.Set;

/*
    java.util.Peoperties集合 extends Hashtable<k,v> implements Map<k,v>
    Properties类表示了持久的属性集。Properties可保存在流中或从流中加载。
    Properties集合是一个唯一和IO流相结合的集合
        可以使用Properties集合中的方法store,把集合中的临时数据,持久化写入硬盘中存储。
        可以使用Properties集合中的方法Load,把硬盘中保存的文件(键值对),读取到集合中使用。。

    属性列表中每一个键及其对应值都是一个字符串。
        Properties集合是一个双列集合,key和value默认都是字符串。
*/
public class Demo01Properties {
    public static void main(String[] args) {
        show();
    }
    /*
        使用Properties集合存储数据,遍历取出Properties集合中的数据。
        Properties集合是一个双列集合,key和value默认都是字符串。
        Properties集合有一些操作字符串的特有方法
            Object setProperty(String key,String value) 调用Hashtable的方法put
            String getProperty(String key)//用指定的键在此属性列表搜素属性。通过key找到value值。此方法相当于Map集合的get(Key)方法
            Set<String> stringPropertyNames() 返回此属性列表的键集,其中该键及其对应值是字符串,此方法相当于Map集合中keySet方法。
    */
    private static void show() {
        //创建Properties对象
        Properties prop =new Properties();
        //使用setProperty往集合中添加数据
        prop.setProperty("赵丽颖", "168");
        prop.setProperty("迪丽热巴", "165");
        prop.setProperty("古力娜扎", "168");
        //使用stringPropertyNames把Properties集合中的键取出,存储到一个Set集合中。
        Set<String> set =prop.stringPropertyNames();
        //遍历Set集合,取出Properties集合中的每一个键。
        for(String key:set){
            //使用getProperty方法通过key获取value
            String value =prop.getProperty(key);
            System.out.println(key+"="+value);
        }
    }
}

在这里插入图片描述

二:Properties集合中的方法store

package Demo06;

import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;
import java.util.Set;

/*
    java.util.Peoperties集合 extends Hashtable<k,v> implements Map<k,v>
    Properties类表示了持久的属性集。Properties可保存在流中或从流中加载。
    Properties集合是一个唯一和IO流相结合的集合
        可以使用Properties集合中的方法store,把集合中的临时数据,持久化写入硬盘中存储。
        可以使用Properties集合中的方法Load,把硬盘中保存的文件(键值对),读取到集合中使用。。

    属性列表中每一个键及其对应值都是一个字符串。
        Properties集合是一个双列集合,key和value默认都是字符串。
*/
public class Demo01Properties {
    public static void main(String[] args) throws IOException {
        show02();
    }
    /*
        可以使用Properties集合中方法store,把集合中临时数据,持久化写入到硬盘中存储。
        void store(OutputStream,String comments)
        void store(Writer writer,String comments)
        参数:
            OutputStream out:字节输出流,不能写入中文。
            Writer writer:字符输出流,可以写中文。
            String comments:注释,用来解释说明保存的文件是做什么用的,不能使用中文,会产生乱码,默认是Unicode编码。
            一般使用”空字符串“

        使用步骤:
            1:创建Properties集合对象,添加数据
            2:创建字节输出流/字符输出流对象,构造方法中绑定输出的目的地。
            3:使用Properties集合中的方法store,把集合中临时数据,持久化写入硬盘中存储。
            4:释放资源。
    */
    private static void show02() throws IOException {
        //创建Properties对象
        Properties prop =new Properties();
        //使用setProperty往集合中添加数据
        prop.setProperty("赵丽颖", "168");
        prop.setProperty("迪丽热巴", "165");
        prop.setProperty("古力娜扎", "168");
        // 2:创建字节输出流/字符输出流对象,构造方法中绑定输出的目的地。
        /*FileWriter fw =new FileWriter("C:\\Users\\Sky\\Desktop\\one.txt");
        // 3:使用Properties集合中的方法store,把集合中临时数据,持久化写入硬盘中存储。
        prop.store(fw,"save data" );*/
        prop.store(new FileOutputStream("C:\\Users\\Sky\\Desktop\\one.txt"), "");
        //4:释放资源。
      //  fw.close();;

    }
}

三:Properties集合中方法load

package Demo06;

import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;
import java.util.Set;

/*
    java.util.Peoperties集合 extends Hashtable<k,v> implements Map<k,v>
    Properties类表示了持久的属性集。Properties可保存在流中或从流中加载。
    Properties集合是一个唯一和IO流相结合的集合
        可以使用Properties集合中的方法store,把集合中的临时数据,持久化写入硬盘中存储。
        可以使用Properties集合中的方法Load,把硬盘中保存的文件(键值对),读取到集合中使用。。

    属性列表中每一个键及其对应值都是一个字符串。
        Properties集合是一个双列集合,key和value默认都是字符串。
*/
public class Demo01Properties {
    public static void main(String[] args) throws IOException {
        show03();
    }
    /*
        可以使用Properties集合中的方法Load,把硬盘中保存的文件(键值对),读取到集合中使用。。
        void Load(InputStream inStream)
        void Load(Reader reader)
        参数:
            InputStream inStream:字节输入流,不能读取含有中文的键值对。
            Reader reader:字符输入流,能读取含有中文的键值对。
        使用步骤:
            1:创建Properties集合对象。
            2:使用Properties集合对象中的方法Load读取保存键值对的文件。
            3:遍历Properties集合
        注意:
            1:存储键值对的文件中,键与值默认的连接符可以使用: =,空格(其他符号)
            2:存储键值对的文件中,可以使用#进行注释,被注释的键值对不会再被读取。
            3:存储键值对的文件中,键与值默认都是字符串,不再加引号。

    */
    private static void show03() throws IOException{
        //1:创建Properties集合对象。
        Properties prop =new Properties();
        //2:使用Properties集合对象中的方法Load读取保存键值对的文件。
        prop.load(new FileReader("C:\\Users\\Sky\\Desktop\\one.txt"));
        // 3:遍历Properties集合
        Set<String> set =prop.stringPropertyNames();
        for (String key:set){
            String value=prop.getProperty(key);
            System.out.println(key+"="+value);
        }
    }

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值