Properties 属性操作
在涉及国际化操作的时候, 我们涉及过一种属性文件(资源文件: *.properties), 在这种文件里面, 其内容的保存格式为: "key=value"的形式, 实际上是通过 ResourceBundle 类读取的时候只能够读取内容, 而如果想要编辑内容, 那么就要通过 Properties 类来完成了, 也就是说这个类专门做属性处理的.
Properties 是 Hashtable 的子类, 并且这个类定义:
public class Properties
extends Hashtable<Object,Object>
所有的属性的信息, 实际上都是以字符串的形式出现的, 在进行属性操作的时候往往会直接使用Properties的子类完成.
- 设置属性:
public Object setProperty(String key, String value)
- 取得属性:
public String getProperty(String key) // 如果没有属性值, 返回的就是 null
public String getProperty(String key, String defaultValue) // 没有属性值, 返回的就是默认值
范例: 观察属性操作
package com.beyond.nothing;
import java.util.Properties;
public class test {
public static void main(String[] args) {
Properties pro = new Properties();
pro.setProperty("bj", "BeiJing");
pro.setProperty("Tj", "TianJing");
System.out.println(pro.getProperty("bj"));;
System.out.println(pro.getProperty("nj"));;
}
}
在Properties 类里面提供有一个IO支持的方法:
- 保存属性:
public void store(Writer writer, String comments) throws IOException
- 读取属性:
public void load(InputStream inStream) throws IOException
范例: 将属性输出到文件
package com.beyond.nothing;
import java.io.*;
import java.util.Properties;
public class test {
public static void main(String[] args) throws Exception {
Properties pro = new Properties();
Properties pro1 = new Properties();
pro.setProperty("bj", "BeiJing");
pro.setProperty("Tj", "TianJing");
// 将属性保存到本地文件
pro.store(new FileOutputStream(new File("D:"+File.separator+"area.properties")), "Area Info");
// 从本地文件读取信息
pro1.load(new FileInputStream(new File("D:"+File.separator+"area.properties")));
System.out.println(pro1.getProperty("bj"));
}
}
总结
对于Properties 而言, 这种输入和输出并不常见, 主要使用其来保存属性信息
- Properties 只能够操作String, 它可以进行远程属于内容的操作