zoukankan      html  css  js  c++  java
  • Java学习笔记31(IO:Properties类)

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

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

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

      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(read方法)磁盘上的数据到内存就是输入(Input)   

      磁盘写Writer(write方法)内存中的数据到磁盘就是输出(Output)

      

  • 相关阅读:
    关于字典中可迭代的一个问题
    关于python字典还不错的一个总结
    代码17
    python文件读写,以后就用with open语句
    myeclipse配置内存
    android官网被封掉了,仅仅好用这个站点进谷歌了!嘎嘎
    IE input X 去掉文本框的叉叉和password输入框的眼睛图标
    【Bootstrap】一个PC、平板、手机同一时候使用并且美观的登陆页面
    110个经常使用Oracle函数总结
    索引
  • 原文地址:https://www.cnblogs.com/Zs-book1/p/10601261.html
Copyright © 2011-2022 走看看