7.Properties子类(Hashtable子类 了解)

国际化程序特点:同一个程序,根据不同的语音环境选择资源文件,所有的资源文件后缀必须是"*.properties"。

Properties类的操作特点:
Properties是Hashtable的子类,主要是进行属性的操作(属性的最大特点是利用字符串设置key和value)
Properties类的定义结构:

public class Properties extends Hashtable

在使用Properties类的时候不需要设置泛型类型,因为从它一开始出现,就只能够保存String,在Properties类里面,主要使用如下的操作方法

public Object setProperties(String key,String value)

以上设置属性

public String getProperties(String key):

如果key不存在,返回null。

public String getProperties(String key,String defaultValue):

如果key不存在,返回默认值

范例:属性的基本操作


    public static void main(String[] args) throws Exception {
        Properties pro=new Properties();
        pro.setProperty("BJ", "A");
        pro.setProperty("NJ", "B");
        System.out.println(pro.getProperty("BJ"));
        System.out.println(pro.getProperty("CJ"));
        System.out.println(pro.getProperty("CCJ","C"));
    }
image.png

在Properties类里面提供有数据的输出操作。

public void store(OutputStream out,String comments) throws IOException

范例:将属性信息保存在文件里


    public static void main(String[] args) throws Exception {
        Properties pro=new Properties();
        pro.setProperty("BJ", "A");
        pro.setProperty("NJ", "B");
        //资源文件一般都要是*.properties对应
        pro.store(new FileOutputStream(new File("E:"+File.separator+"area.properties")), "Area Info");
    }

然后打开E盘,的确有area.properties.


image.png

也可以从指定的输入流中读取属性信息。

public void load(InputStream inStream) throws IOException

范例:通过文件流读取属性内容

    public static void main(String[] args) throws Exception {
        Properties pro=new Properties();
    
        pro.load(new FileInputStream(new File("E:"+File.separator+"area.properties")));
        System.out.println(pro.getProperty("BJ"));
    }
image.png

对于属性文件(资源文件)而言,除了可以使用Properties类读取之外,也可以使用ResourceBundle类读取,这也就是将输出的属性文件统一设置的后缀为"*.properties"的原因所在。

总结:

1.资源文件的特点
key=value
key=value
2.资源文件的数据一定都是字符串

你可能感兴趣的:(7.Properties子类(Hashtable子类 了解))