包:java.util
public class Propertities extends Hashtable
Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。以下是常用的方法:
public Properties():创建一个无默认值的空属性列表。
public Properties(Properties defaults):创建一个带有指定默认值的空属性列表。
public void load(InputStream inStream):从输入流中读取属性列表(键和元素对)。
public void store(OutputStream out, String comments):以适合使用 load(InputStream)
方法加载到 Properties
表中的格式,将此 Properties
表中的属性列表(键和元素对)写入输出流。
public Object setProperty(String key, String value):修改属性列表中key对应的键值为value,如不存在对应的key,则新建一个对应的键值对。
public String getProperty(String key):用指定的键在此属性列表中搜索属性。如果在此属性列表中未找到该键,则接着递归检查默认属性列表及其默认值。如果未找到属性,则此方法返回 null。
public String getProperty(String key, String defaultValue):用指定的键在属性列表中搜索属性。如果在属性列表中未找到该键,则接着递归检查默认属性列表及其默认值。如果未找到属性,则此方法返回默认值变量。
示例代码如下:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.Properties;
public class PropertyTest {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
Properties prop = new Properties();// 属性集合对象
FileInputStream fis = new FileInputStream("prop.properties");// 属性文件输入流
prop.load(fis);
// 将属性文件流装载到Properties对象中
fis.close();// 关闭流
// 获取属性值,sitename已在文件中定义
System.out.println("获取属性值:sitename=" + prop.getProperty("sitename"));
// 获取属性值,country未在文件中定义,将在此程序中返回一个默认值,但并不修改属性文件
System.out.println("获取属性值:country=" + prop.getProperty("country", "中国"));
// 修改sitename的属性值
prop.setProperty("sitename", "Boxcode");
// 添加一个新的属性studio
prop.setProperty("studio", "Boxcode Studio");
// 文件输出流
FileOutputStream fos = new FileOutputStream("prop.properties");
// 将Properties集合保存到流中
prop.store(fos, "Copyright (c) Boxcode Studio");
prop.list(new PrintStream(System.out));
fos.close();// 关闭流
}
}