Properties
java.util.Properties继承至Hashtable,表示一个持久的属性集,可以叫做配置文件类
- 通常用于读取配置文件信息,java中的配置文件通常为.porperties文件
- 他使用键值对的结构存储数据,每一个键,及其独享值都是一个字符串
- Properties可以保存在流中或者从流中加载
- 他也是一个容器类,Hashtable的子类。(Hashtable和HashMap的区别:Hashtable不能把null作为键和值,HashMap可以)
构造方法:
- Properties();创建一个没有默认值的空属性列表
- Properties(Properties defaults);创建一个具有指定默认值的空属性列表
常用方法:
返回值 | 方法名 | 说明 |
---|---|---|
void | read(InputStream inStream) | 从输入字节流读取到属性列表(键和元素对)。 |
void | getProperty(String key) | 使用此属性列表中指定的键搜索属性,返回value |
Object | setProperty(Stringkey,String value); | 调用Hashtable中的put方法 |
Object | remove(Object key) | 删除对象中指定key的键值对 |
void | clear() | 清空此散列表,使其不包含任何值 |
void | list(PrintStream out) | 将此属性列表打印到指定的out输出流 |
String | toString() | 以一组条目的方式返回此Hashtable对象的字符串表示形式 |
定义一个properties类型的数据文件
- 通常在src文件夹下
- 文件后缀名为.properties
- 内容必须是:键=值 的格式
name=Zhangsan
address=中国
age=20
读取properties文件
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class Test1 {
public static void main(String[] args) throws FileNotFoundException {
//读取一个properties文件,返回的是一个输入流对象
InputStream is=Thread.currentThread().getContextClassLoader().getResourceAsStream("config.properties");
//也可以使用这种写法
// FileInputStream is = new FileInputStream("绝对路径··src/config.properties");
//创建一个properties对象
Properties p = new Properties();
try {
//将输入流加载到properties对象中
p.load(is);
} catch (IOException e) {
e.printStackTrace();
}
//修改p对象中k的value
p.setProperty("name","Tom");
//获得p对象中k的value
String s = p.getProperty("name");
System.out.println(s);
System.out.println(p.getProperty("age"));
p.remove("age");
System.out.println(p.getProperty("address"));
System.out.println(p.toString());
//控制台打印属性列表全部
p.list(System.out);
}
}