1. Properties继承HashTable
public class Propertiesextends Hashtable<Object,Object>
2. Properties类表示了一个持久的属性集。Properties可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。
3. 官方推荐使用setProperty方法, 不要使用put和putAll方法
4. load(Reader)/store(Writer, String)简单的面向行的格式在基于字符的流中加载和存储属性。除了输入/输出流使用ISO 8859-1字符编码外,
load(InputStream)/store(OutputStream, String)方法与load(Reader)/store(Writer, String)对的工作方式完全相同。
5. loadFromXML(InputStream)和storeToXML(OutputStream, String, String)方法按简单的XML格式加载和存储属性。默认使用UTF-8字符编码。
6. Properties是线程安全的, 多个线程可以共享单个Properties对象而无需进行外部同步。
7. 使用Properties工具类
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Enumeration;
import java.util.Properties;
import java.util.Set;
public class UseProperties {
/**
* Properties的keys和loadFromXML方法加载数据
* @throws FileNotFoundException
* @throws IOException
*/
public void loadFromXML() throws FileNotFoundException, IOException {
Properties properties = new Properties();
properties.loadFromXML(new FileInputStream("middleware.xml"));
Enumeration<Object> e = properties.keys();
while(e.hasMoreElements()) {
String key = (String) e.nextElement();
System.out.println(key + ":" + properties.getProperty(key, ""));
}
}
/**
* Properties的setProperty和storeToXML方法储存数据
* @throws FileNotFoundException
* @throws IOException
*/
public static void storeToXML() throws FileNotFoundException, IOException {
Properties properties = new Properties();
properties.setProperty("game", "unity");
properties.setProperty("middleware", "c++");
properties.setProperty("plantform1", "jni c++");
properties.setProperty("plantform2", "oc c++");
properties.storeToXML(new FileOutputStream("middleware.xml"), "game sdk middleware");
}
/**
* Properties的getProperty和load方法加载数据
* @throws FileNotFoundException
* @throws IOException
*/
public void load() throws FileNotFoundException, IOException {
Properties properties = new Properties();
properties.load(new FileInputStream("people.properties"));
Set<Object> set = properties.keySet();
for (Object object : set) {
System.out.println(object + ":" + properties.getProperty((String)object, ""));
}
}
/**
* Properties的setProperty和store方法储存数据
* @throws FileNotFoundException
* @throws IOException
*/
public void store() throws FileNotFoundException, IOException {
Properties properties = new Properties();
properties.setProperty("name", "zhangsan");
properties.setProperty("age", "22");
properties.setProperty("sex", "male");
properties.store(new FileOutputStream("people.properties"), "people infomation");
}
}
Properties类详解
本文详细介绍了Java中的Properties类,包括其继承关系、基本用途、推荐使用方法及如何通过各种方式加载和存储属性。同时提供了具体的代码示例来演示如何操作Properties对象。
878

被折叠的 条评论
为什么被折叠?



