Properties集合中的方法load与缓冲流的原理

Properties集合中的方法load

package Demo_Properties;

import java.io.*;
import java.util.Properties;
import java.util.Set;

/*
java.util.Properties集合extends Hashtable<k, v> implements Map<k, v>Properties类表示了一个持久的属性集。Properties可保存在流中或从流中加载。Properties集合是一个唯—和i0流相结合的集合
可以使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储
可以使用Properties集合中的方法Load,把硬盘中保存的文件(键值对),读取到集合中使用
属性列表中每个键及其对应值都是一个字符串。
Properties集合是一个双列集合, key和value黑认都是字符串
 */
public class Demo01_Properties {
    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 {
        //创建 Properties集合对象
        Properties pis = new Properties();
        //2.使用Properties集合对象中的方法Load读取保存键值对的文件
        pis.load(new FileReader("a.txt"));
        //3.遍历Properties集合
        Set<String> set = pis.stringPropertyNames();
        for (String key : set){
            String property = pis.getProperty(key);
            System.out.println(key+"="+property);
        }

    }

    /*
    可以使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储void store( outputstream out,string comments )
void store (luriter writer,string comments)参数:
OutputStream out :字节输出流,不能写入中文writer writer:字符输出流,可以写中文
String comments :注释,用来解释说明保存的文件是做什么用的
不能使用中文,会产生乱码,黑认是unicode编码
一般使用""空字符串
使用步骤:
1.创建Properties集合对象,i添加数据
2.创建字节输出流/字符输出流对象,构造方法中绑定要输出的目的地
3.使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储
4.释放资源
     */
    private static void show02() throws IOException {
        Properties pes = new Properties();
        //使用setProperty往集合中添加数据
        pes.setProperty("马可波罗","152");
        pes.setProperty("安琪拉","106");
        pes.setProperty("鲁班大师","103");
      /*
        //2.创建字节输出流/字符输出流对象,构造方法中绑定要输出的目的地
        FileWriter fileWriter = new FileWriter("q.txt");
        //3.使用Properties集合中的方法store,把集合中的临时数据,持久化写入到硬盘中存储
        pes.store(fileWriter,"save data");
        //4.释放资源
        fileWriter.close();
       */
        pes.store(new FileOutputStream("q.txt"),"");

    }

        /*
        使用Properties集合存储数据,遍历取出Properties集合中的数据
        Properties集合是一个双列集合,key和value黑认都是字符串
        Properties集合有一些操作字符串的特有方法
                object setProperty (String key,String value)调用Hashtable 的方法 put。
                String getProperty (String key)通过key找到value值,此方法相当于MNap集合中的get(key)方法
                Set<String stringPropertyNames()返回此属性列表中的键集,其中该键及其对应值是字符串,,此方法相当于MNap集合中的keyset方法
         */

    private static void show01() {
        //创建 Properties集合对象
        Properties pes = new Properties();
        //使用setProperty往集合中添加数据
        pes.setProperty("马可波罗","152");
        pes.setProperty("安琪拉","106");
        pes.setProperty("鲁班大师","103");
        //pes.put(1,true);

        //使用stringPropertyNames把Properties集合中的键取出,存储到一个set集合中
        Set<String> set = pes.stringPropertyNames();

        //遍历Set集合,取出Properties  集合的每一个键
        for (String key : set){
            String value = pes.getProperty(key);
            System.out.println(key+"="+value);

        }


    }
}

 

缓冲流

昨天学习了基本的一些流,作为IO流的入门,今天我们要见识一些更强大的流。比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储对象的序列化流等等。这些功能更为强大的流,都是在基本的流对象基础之上创建而来的,就像穿上铠甲的武士一样,相当于是对基本流对象的一种增强

概述


缓冲流,也叫高效流,是对4个基本的Filexxx流的增强,所以也是4个流,按照数据类型分类:

字节缓冲流:BufferedInputStream , Bufferedoutputstream
字符缓冲流:BufferedReader, BufferedwriterI
缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。

作为IO流的入门,今天我们要见识一些更强大的流。比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储对象的序列化流等等。这些功能更为强大的流,都是在基本的流对象基础之上创建而来的,就像穿上铠甲的武士一样,相当于是对基本流对象的一种增强。

 

posted @ 2022-07-09 16:41  zj勇敢飞,xx永相随  阅读(51)  评论(0编辑  收藏  举报