文档引用说明:http://www.runoob.com/java/java-properties-class.html
Properties 继承于 Hashtable.表示一个持久的属性集.属性列表中每个键及其对应值都是一个字符串。
Properties 类被许多Java类使用。例如,在获取环境变量时它就作为System.getProperties()方法的返回值。
Properties 定义如下实例变量.这个变量持有一个Properties对象相关的默认属性列表。
Properties defaults;
Properties类定义了两个构造方法. 第一个构造方法没有默认值。
Properties()
第二个构造方法使用propDefault 作为默认值。两种情况下,属性列表都为空:
Properties(Properties propDefault)
除了从Hashtable中所定义的方法,Properties定义了以下方法:
序号 | 方法描述 |
---|---|
1 | String getProperty(String key) 用指定的键在此属性列表中搜索属性。 |
2 | String getProperty(String key, String defaultProperty) 用指定的键在属性列表中搜索属性。 |
3 | void list(PrintStream streamOut) 将属性列表输出到指定的输出流。 |
4 | void list(PrintWriter streamOut) 将属性列表输出到指定的输出流。 |
5 | void load(InputStream streamIn) throws IOException 从输入流中读取属性列表(键和元素对)。 |
6 | Enumeration propertyNames( ) 按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)。 |
7 | Object setProperty(String key, String value) 调用 Hashtable 的方法 put。 |
8 | void store(OutputStream streamOut, String description) 以适合使用 load(InputStream)方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流。 |
实例:
package com.web.util;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
/**
* @Description 配置信息工具类
* @author sshmobai
*/
public class ConfigUtil {
public static final String CONFIG_FILE_NAME = "resources.properties";
public static Properties props = new Properties();
static {
try {
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(CONFIG_FILE_NAME);
props.load(is);
is.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* @Description 读取配置文件
*/
public static void reload(){
try {
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(CONFIG_FILE_NAME);
props.load(is);
is.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* @Description 获得配置的key
* @param key key-name
* @return key-value
*/
public static String getValue(String key) {
return props.getProperty(key);
}
/**
* @Description 读取所有配置
* @return
*/
public static Properties getProps(){
return props;
}
/**
* 设置配置的key
* @param key key-name
* @param value key-value
*/
public static void updateProperties(String key, String value) {
props.setProperty(key, value);
}
}