详解 Properties类

Posted codderyouzg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了详解 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

以上是关于详解 Properties类的主要内容,如果未能解决你的问题,请参考以下文章

详解 Properties类

Properties类使用详解

14.VisualVM使用详解15.VisualVM堆查看器使用的内存不足19.class文件--文件结构--魔数20.文件结构--常量池21.文件结构访问标志(2个字节)22.类加载机制概(代码片段

Java中的Properties类详解

springboot的配置文件application.properties详解

Cocos技术派 | TS版各种属性声明详解