Java学习笔记31(IO:Properties类)

Properties类,表示一个持久的j集,可以存在流中,或者从流中加载

  是Hashtable的子类 map集合的方法都能用

  用途之一:在开发项目中,我们最后交给客户的是一个编译过的class文件,客户是无法操作源码的,当我们链接数据库时,需要在源码中写数据库名,密码,那么当客户需要更换数据库或者改密码时,就需要在源码中更改,这是非常不方便的,因此就用到这个类,在外部创建一个文件,文件中写上数据库名,密码,然后java代码读这个文件,这样客户就可以直接更改这个文件的内容来达到目的,方便操作。

  Properties用法:

package com.zs.Demo;

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

public class Dmeo3 {
    public static void main(String[] args) {
        try {
            fun1();
            fun2();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    //关于Properties集合添加元素,获得数据,遍历数据
    private static void fun2() throws IOException {
        FileOutputStream fo=new FileOutputStream("d:\\ch.properties");
        Properties p=new Properties();
        //给p对象添加元素,键-值
        p.setProperty("name", "张三");
        p.setProperty("age", "18");
        p.setProperty("password", "10010");
        //map集合添加元素方法也能用
        p.put("sex", "男");
        //store方法将properties表中的属性列表写入输出字符
        p.store(fo,"");
        fo.close();
        //stringPropertyNames()将集合中的键存入一个set集合
        Set<String> set = p.stringPropertyNames();
        //遍历set集合
        for (String s : set) {
            System.out.println(s+":"+p.get(s));
            /*age:18
            name:张三
            password:10010*/
        }
        System.out.println(p);//{age=18, password=10010, name=张三} 结果是无序的
    }

    private static void fun1() throws IOException {
        Properties p=new Properties();
        FileInputStream f=new FileInputStream("e:\\workspace\\d33\\src\\user.properties");
        //load方法,将文件中的键值对加载到集合中
        p.load(f);
        f.close();
        System.out.println(p);//{password="1008611", name="张三"}
    }
}

流操作规律总结:

  流对象很多  解决问题(处理设备上数据)到底用哪儿个流

    源:InputStream Reader

    目的地:OutputStream  Writer

  明确要操作的文件是字节文件还是文本

    字节:InputStream OutputStream

    文本:Reader Writer

  明确数据所在的具体设备:

    源设备:硬盘,文件file开头

    内存:数组,字符串

关于读取,In/Output的认识:

  字节在内存中(In)              在内存外(磁盘上)(Out)

  内存读(Reader)磁盘上的数据就是输入(Input)   内存中的数据写到(Writer)磁盘中就是输出(Output)   

  

猜你喜欢

转载自www.cnblogs.com/Zs-book1/p/10601261.html