1、Java Properties工具类位于java.util.Properties,该工具类的使用极其简单方便。首先该类是继承自

Hashtable<Object,Object>

这就奠定了Properties类的本质其实是一个HashTable,那么对于各种工具类的典型特性就是在HashTable的基础之上做各种封装,以降低操作的难度。说白了,本质上还是key = value结构,只不过key和value都是字符串而已。可以理解成为一个简化版的Map<String, String>。

2、Properties的用途,显而易见,我们在开发过程中很多地方都会用到以.properties结尾的配置文件,key=valu结构的数据,他没有XML文件那么丰富强大,但是他简单,我们也不是任何地方都需要用XML来描述比较复杂的嵌套结构。据我所知,有不少框架在解析.properties文件的时候就采用的是Properties类或者是基于Properties来扩展,就像Properties扩展HashTable道理差不多。

3、Properties类的使用

  1.创建Properties对象,源码中提供2中构造方法。但是本质是一致的,在此介绍默认构造方法:

Properties prop = new Properties();

  2.该类总共大概二三十个方法,没有静态方法。所有的方法都是针对该类的实例化对象的操作。按照一般的工具类的思路,内部虽然有二三十个方法,其实很多都是类似的方法,只不过是不一样的参数进行重载而已。去掉类似的方法和重载的方法,也就剩下不到10个,而这不到10个的方法用法和特点和Map几乎是一模一样,本身他也是继承自HashTable的。

  3.从.properties文件中加载,我们一般都是从文件中加载属性。而该类提供了3个从文件中加载的方法,分别是:

load(Reader reader)
load(InputStream inStream)
loadFromXML(InputStream in)

  4.对属性的操作

  通过上面第3步就会使得prop对象拥有了0个或者多个key=value方式的属性。

  5.对对象的操作

         prop.clear(); // 清空
prop.containsKey("key"); // 是否包含key
prop.containsValue("value"); // 是否包含value
prop.entrySet(); // prop的Map.Entry集合
prop.getProperty("key"); // 通过key获取value
prop.put("key", "value"); // 添加属性
prop.list(new PrintStream(new File(""))); // 将prop保存到文件
prop.store(new FileOutputStream(new File("")), "注释"); // 和上面类似

Java Properties工具类详解的更多相关文章

  1. java之Matcher类详解

    在JDK 1.4中,Java增加了对正则表达式的支持. java与正则相关的工具主要在java.util.regex包中:此包中主要有两个类:Pattern.Matcher. Matcher  声明: ...

  2. java之StringBuffer类详解

    StringBuffer 线程安全的可变字符序列. StringBuffer源码分析(JDK1.6): public final class StringBuffer extends Abstract ...

  3. java之AbstractStringBuilder类详解

    目录 AbstractStringBuilder类 字段 构造器 方法   public abstract String toString() 扩充容量 void  expandCapacity(in ...

  4. java之StringBuilder类详解

    StringBuilder 非线程安全的可变字符序列 .该类被设计用作StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍).如果可能,建议优先采用该类,因为在 ...

  5. java.lang.Thread类详解

    java.lang.Thread类详解 一.前言 位于java.lang包下的Thread类是非常重要的线程类,它实现了Runnable接口,今天我们来学习一下Thread类,在学习Thread类之前 ...

  6. Java中dimension类详解

    Java中dimension类详解 https://blog.csdn.net/hrw1234567890/article/details/81217788

  7. java的ReentrantLock类详解

    ReentrantLock 能用于更精细化的加锁的Java类, 通过它能更清楚了解Java的锁机制 ReentrantLock 类的集成关系有点复杂, 既有内部类, 还有多重继承关系 类的定义 pub ...

  8. Java的String类详解

    Java的String类 String类是除了Java的基本类型之外用的最多的类, 甚至用的比基本类型还多. 同样jdk中对Java类也有很多的优化 类的定义 public final class S ...

  9. java.util.Arrays类详解(源码总结)

    概述 Arrays类位于java.util包下,是一个对数组操作的工具类.今天详细的看了看Arrays类的4千多行源码,现将Arrays类中的方法做一个总结(JDK版本:1.6.0_34).Array ...

随机推荐

  1. memory leak at strcore.cpp

    最近使用CString出现了内存泄露,后来发现是CString.GetBuffer之后没有ReleaseBuffer.

  2. Unicode 编码概念

    Unicode 编码概念 Unicode 编码可能是我们日常开发中接触最多的字符编码方式之一,其它常见的中文编码方式还包括 GB2132-80 / GB13000 / GBK / GB18030 .在 ...

  3. UIButton属性

    1.UIButton状态: UIControlStateNormal          // 正常状态    UIControlStateHighlighted     // 高亮状态    UICo ...

  4. C#线程系列讲座(3):线程池和文件下载服务器

    如果设计一个服务器程序,每当处理用户请求时,都开始一个线程,将会在一定程序上消耗服务器的资源.为此,一个最好的解决方法就是在服务器启动之前,事先创建一些线程对象,然后,当处理客户端请求时,就从这些建好 ...

  5. ASP.NET MVC Error

    Error Handler http://prideparrot.com/blog/archive/2012/5/exception_handling_in_asp_net_mvc http://ww ...

  6. nginx地址重写

    1. 域名重定向 server_name wx.he.com weixin.ha.com; if ($http_host !~* "wx\.he\.com"){ rewrite ^ ...

  7. DG - 开启Active Data Guard

    在配置active data guard之前,phycial standby必须处于以下两个状态之一: (1)standby处于mount状态,并且redo apply正在运行中 (2)standby ...

  8. [转]EntityFramework走马观花之CRUD(上)

    学习Entity Framework技术期间查阅的优秀文章,出于以后方便查阅的缘故,转载至Blog,可查阅原文:http://blog.csdn.net/bitfan/article/details/ ...

  9. keil 编译的一些错误

    以前使用的是MDK4.5 但是没有stm32F3的元器件,果断的使用了4.6版本了.但是编译之后出现这样错误:linking....\Obj\prj.axf: Warning: L6373W: lib ...

  10. 省市联动初探AJAX操作数据

    主要学习代码: List.html <script type="text/javascript"> function GetXhr() { return new XML ...