zoukankan      html  css  js  c++  java
  • 详解 Properties类

    (请观看本人博文——《详解 I/O流》

    Properties类:

    概念

    Properties 类的对象 是 一个持久的属性集
    Properties 可 保存在流中从流中加载
    属性列表中每个键及其对应值都是一个字符串
    Properties类的 父类是Hashtable
    属于双列集合,这个集合中的键和值都是字符串
    Properties类 不能指定泛型

    现在,本人来说明一下本人的见解:

    在本人之前的博文中,相信大家已经了解到了properties文件的许多知识。
    但是,在学习到此类的时候,本人对于properties文件的理解更加深刻了。 properties文件存储的是 键值对制 的信息
    就像是一个 外存化的Hashtable

    现在,本人来介绍下这个类的构造方法

    构造方法

    • Properties()
      创建一个无默认值的空属性列表
    • Properties(Properties defaults)
      创建一个带有指定默认值的空属性列表

    现在,本人来展示下这个类的常用API

    常用API

    • void store(OutputStream out, String comments)
      以适合使用 load(InputStream) 方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流
    • void store(Writer writer, String comments)
      以适合使用 load(Reader) 方法的格式,将此 Properties 表中的属性列表(键和元素对)写入输出字符
    • void storeToXML(OutputStream os, String comment)
      发出一个表示此表中包含的所有属性的 XML 文档
    • void storeToXML(OutputStream os, String comment, String encoding)
      使用指定的编码发出一个表示此表中包含的所有属性的 XML 文档
    • void load(InputStream inStream)
      从输入流中读取属性列表键和元素对
    • void load(Reader reader)
      按简单的面向行的格式从输入字符流中读取属性列表键和元素对
    • void loadFromXML(InputStream in)
      指定输入流中,由 XML 文档所表示的所有属性加载到此属性表中
    • String getProperty(String key)
      指定的键在此属性列表中搜索属性
      若搜索不到,则null
    • String getProperty(String key, String defaultValue)
      指定的键在属性列表中搜索属性
      若搜索不到,则返回defaultValue
    • void list(PrintStream out)
      属性列表输出到指定的输出流
    • void list(PrintWriter out)
      属性列表输出到指定的输出流
    • Enumeration<?> propertyNames()
      返回属性列表中所有键的枚举
      如果在主属性列表中未找到同名的键,则包括默认属性列表中不同的键
    • Object setProperty(String key, String value)
      调用 Hashtable 的方法 put
    • Set< String > stringPropertyNames()
      返回此属性列表中的键集,其中该键及其对应值是字符串,
      如果在主属性列表中未找到同名的键,则还包括默认属性列表中不同的键
    • void save(OutputStream out, String comments)
      已过时
      如果在保存属性列表时发生 I/O 错误,则此方法不抛出 IOException。
      保存属性列表的首选方法是通过 store(OutputStream out, String comments) 方法或 storeToXML(OutputStream os, String comment) 方法来进行

    现在,本人来展示下 部分API 的使用:

    package edu.youzg.about_io.about_file.core.Test;
    
    import edu.youzg.about_io.about_file.core.FanInfo;
    
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.Properties;
    
    public class Test {
    
        public static void main(String[] args) throws IOException, ClassNotFoundException {
            Properties properties = new Properties();
            properties.setProperty("name","Kujo Jotaro");
            properties.setProperty("attribute","Star Platinum");
            properties.setProperty("uncle","Higashikata Jousuke");
            //把 属性集合中的数据,保存到配置文件中
            properties.store(new FileWriter("JoJo.properties"),null);
    
            //根据“键”,获得“值”的信息
            String property = properties.getProperty("grandfather");
            System.out.println(property==null ? "没存储" : property);
            property = properties.getProperty("grandfather", "JOSEPH JOESTAR");
            System.out.println(property==null ? "没存储" : property);
    
            //获取整个.properties文件的信息
            properties.load(new FileReader("JoJo.properties"));
            System.out.println(properties);
        }
    
    }
    

    那么,本人来展示下 运行结果 和 生成的文件:
    在这里插入图片描述

    那么,有关 Properties类 的知识点,在这里就基本上讲解完了!

    (本人 I/O流总集篇 博文链接:https:////www.cnblogs.com/codderYouzg/p/12418404.html

  • 相关阅读:
    Python Semaphore
    Python 互斥锁
    Python 递归锁
    Python GIL锁
    Python 线程调用
    进程与线程
    Python paramiko模块
    Python SocketServer模块
    MonoDevelop with Visual Studio to Linux and Mac OSX maintaining a single code base for all platforms.
    mime大全收集
  • 原文地址:https://www.cnblogs.com/codderYouzg/p/12418695.html
Copyright © 2011-2022 走看看