详解 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类的主要内容,如果未能解决你的问题,请参考以下文章
14.VisualVM使用详解15.VisualVM堆查看器使用的内存不足19.class文件--文件结构--魔数20.文件结构--常量池21.文件结构访问标志(2个字节)22.类加载机制概(代码片段