Java学习总结:57(Properties子类)

Properties子类

Properties类本身是Hashtable的子类,但是由于Properties类都使用String数据类型进行操作,所以在使用Properties类时主要使用本类所定义的方法。Properties类常用方法如下:

No.方法类型描述
1public Object setProperty(String key,String value)普通设置属性
2public String getProperty(String key)普通取得属性,如果key不存在则返回null
3public String getProperty(String key,String defaultValue)普通取得属性,如果key不存在则返回默认值
4public void store(OutputStream out,String comments) throws IOException普通通过输出流保存属性内容,输出的同时可以设置注释信息
5public void load(InputStream inStream,String comments) throws IOException普通通过输入流读取属性内容

例:属性的基本操作

package Project.Study.Properties;

import java.util.Properties;

public class Test1 {
    public static void main(String[]args){
        Properties properties = new Properties();           //实例化类对象
        properties.setProperty("一","one");                  //保存属性信息
        properties.setProperty("二","two");
        properties.setProperty("三","three");
        System.out.println(properties.getProperty("一"));    //根据key取得属性信息
        System.out.println(properties.getProperty("二"));
        System.out.println(properties.getProperty("三"));
        System.out.println(properties.getProperty("四"));    //没有key返回默认值
    }
}
//结果:
//one
//two
//three
//null

利用Properties类还实现属性信息的输出流输出以及输入流读取操作。
例:将属性信息保存在文件里

package Project.Study.Properties;

import java.io.File;
import java.io.FileOutputStream;
import java.util.Properties;

public class Test2 {
    public static void main(String[]args)throws Exception{
        Properties properties = new Properties();           //实例化对象
        properties.setProperty("one","一");                  //保存属性信息
        properties.setProperty("two","二");
        properties.setProperty("three","三");
        //一般而言后缀可以随意设置,但是标准来讲,既然是文件,后缀就必须是*.properties,这样做是为了与国际化对应
        //在进行属性信息保存时如果属性内容为中文则会自动进行转码操作
        properties.store(new FileOutputStream(new File("d:"+File.separator+
                "Test"+File.separator+"test.properties")),"Area Info");
    }
}

结果:
在这里插入图片描述
例:通过文件流读取属性内容

package Project.Study.Properties;

import java.io.File;
import java.io.FileInputStream;
import java.util.Properties;

public class Test3 {
    public static void main(String[]args)throws Exception{
        Properties properties = new Properties();           //实例化对象
        properties.load(new FileInputStream(new File("d:"+File.separator+
                "Test"+File.separator+"test.properties")));
        System.out.println(properties.getProperty("一"));
        System.out.println(properties.getProperty("two"));	//根据key取得属性信息
        System.out.println(properties.getProperty("three"));
    }
}
//结果:
//null
//二
//三

Properties类与ResourceBundle类的区别:
ResourceBundle类在进行资源文件的读取时只能读取后缀为"*.properties"的文件,并且往往要通过Locale类来设置当前国家及语言环境,但是ResourceBundle类与Locale类结合读取不同语言资源文件的功能Properties类并没有;
Properties类可以不区分文件后缀,只要符合它保存数据的结构标准的输入流,数据都可以进行读取。
综上:如果读取国际化资源文件使用ResourceBundle类,如果读取一些配置信息则可以使用Properties类。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值