properties文件
扩展名是 Properties 的文件是 Java中一种配置文件,其格式是 key=value。
使用代码操作其内容的类是 : Properties类
public class Properties extends Hashtable<Object,Object>
Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。
常用方法
方法名 | 说明 |
---|---|
String getProperty(String key) | 返回与键关联的值。如果键既不在列表中也不在默认属性列表中,则返回null 对象。 |
String getProperty(String key,String defaultValue) | 返回与键关联的值; 如果键既不在列表中也不在默认属性列表中,则返回defaultProperty。 |
void list(PrintStream out) | 将属性列表发送到链接到 streamOut 的输出流。 |
void list(PrintWriter out) | 将属性列表发送到链接到 streamOut 的输出流。 |
void load(InputStream inStream) | 从链接到 streamIng 的输入流输入属性列表。 |
void store(OutputStream out, String comments) | 以适合使用 load(InputStream)]() 方法加载到 Properties表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流。 |
Object setProperty(String key,String value) | 调用Hashtable的方法put。提供并行的getProperty方法。强制使用字符串的属性键和值。返回值是Hashtable调用put的结果 |
基本操作
import java.util.Map;
import java.util.Properties;
import java.util.Set;
public class PropertiesDemo {
public static void main(String[] args) {
Properties pro=new Properties();
pro.put("001", "张三");
pro.put("002", "李四");
pro.put("003", "王五");
Set<Object> keySet = pro.keySet();
for(Object key:keySet) {
Object value=pro.get(key);
System.out.println(key+"="+value);
}
System.out.println("-----------");
Set<Map.Entry<Object, Object>> entrySet = pro.entrySet();
for(Map.Entry<Object, Object> entry:entrySet) {
Object key=entry.getKey();
Object value=entry.getValue();
System.out.println(key+"="+value);
}
}
}
Properties 文件的读写
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.Iterator;
import java.util.Properties;
public class PropertyTest {
public static void main(String[] args) {
Properties prop = new Properties();
try {
// 读取属性文件a.properties
InputStream in = new BufferedInputStream(
new FileInputStream("a.properties"));
prop.load(in); /// 加载属性列表
in.close();
for (Entry<Object, Object> entry : prop.entrySet()) {
System.out.println(entry);
}
// 保存属性到b.properties文件
// true表示追加打开
FileOutputStream oFile = new FileOutputStream("b.properties", true);
prop.setProperty("phone", "10086");
prop.store(oFile, "The New properties file");
oFile.close();
} catch (Exception e) {
System.out.println(e);
}
}
}