Properties类简单使用

目录

1.  Properties的引言:

2.  Properties的特点:

3.  Properties常用方法:

4.  Properties与字符缓存流(BufferedWriter)的文件内容的书写的运用:

5.  Properties与字符缓存流(BufferedWriter)的文件内容的书写的运用:


1.  Properties的引言:

  • 可能当我们的java程序正在运行时,我们需要修改其中配置的某一个值,但是我们又不可能将程序停止后修改其中的值,这个时候,就体现出使用properties配置文件的好处了。
  • 如果该值是处properties配置文件中的,其可以很好很方便的跟java程序进行交互,我们不需要停止程序,可以直接修改properties配置文件中的值,那么java程序中的该值即可改变。
  • 而Properties类,是java程序中读取properties配置文件的优选类。

2.  Properties的特点:

  • 父类是HashTable,底层原理也是HashTable。
  • 该类是专门用于读写properties配置文件的集合类。配置文件格式如下:

key=value

  • key和value皆不能为null。两者的默认类型是String 。

3.  Properties常用方法:

返回值方法说明
Vput(K key, V value)将指定的key映射到此散列表中指定的value。key和value都不能是null。
ObjectsetProperty(String key, String value)调用Hashtable方法的put方法
Vremove(Object key)从此散列表中删除键(及其对应的值)。如果键不在哈希表中,此方法不执行任何操作。
Set<String>stringPropertyNames()返回一个不可修改的key集合,其key及其对应的value是字符串
StringgetProperty(String key)使用此属性列表中指定的key查找对应value

示例演示:

public static void main(String[] args) {
        //创建Properties对象
        Properties props = new Properties();

        //存入数据
        //V put(K key, V value) 将指定的key映射到此散列表中指定的value。key和value都不能是null。
        Object put = props.put("name", "Tom");

        //Properties和Map相似,添加重复的key值时,后来的value会覆盖原来的数据
        props.put("age","8");
        Object age1 = props.put("age", "23");
        System.out.println("age1 = " + age1);

        props.put("address","newYork");
        //ObjectsetProperty(String key, String value)调用Hashtable方法的put方法
        props.setProperty("happy","playBasketball");

        System.out.println("----------------#存入数据的Properties为:#----------------");
        //打印Properties对象   注: Properties已经重写toString方法
        System.out.println("props = " + props);//props = {address=newYork, age=23, name=Tom}

        System.out.println("----------------#删除指定的key所对应的键值对#----------------");
        //删除指定的key所对应的键值对
        //V remove(Object key) 从此散列表中删除键(及其对应的值)。如果键不在哈希表中,此方法不执行任何操作。
        Object age = props.remove("age");
        System.out.println("age = " + age);
        System.out.println("props = " + props);

        System.out.println("----------------#遍历集合方式一:#----------------");
        //遍历集合
        //获取所有的key
        //Set<String>stringPropertyNames()返回一个不可修改的key集合,其key及其对应的value是字符串
        Set<String> strings = props.stringPropertyNames();
        for (String key : strings) {
            //StringgetProperty(String key)使用此属性列表中指定的key查找对应value
            String property = props.getProperty(key);
            System.out.println(key + "=" + property);
        }

        System.out.println("----------------#遍历集合方式二:#----------------");
        Set<Map.Entry<Object, Object>> entries = props.entrySet();
        for (Map.Entry<Object, Object> entry : entries) {
            Object key = entry.getKey();
            Object value = entry.getValue();
            System.out.println( key+ "=" + value);
        }
        
    }

结果展示: 

age1 = 8
----------------#存入数据的Properties为:#----------------
props = {address=newYork, age=23, name=Tom, happy=playBasketball}
----------------#删除指定的key所对应的键值对#----------------
age = 23
props = {address=newYork, name=Tom, happy=playBasketball}
----------------#遍历集合方式一:#----------------
address=newYork
name=Tom
happy=playBasketball
----------------#遍历集合方式二:#----------------
address=newYork
name=Tom
happy=playBasketball

4.  Properties与字符缓存流(BufferedWriter)的文件内容的书写的运用:

返回值方法说明
voidstore(Writer writer, String comments)将此属性列表(键和元素对)写入此 Properties表中,以适合使用 load(Reader)方法的格式输出到输出字符流。
voidstore(OutputStream out, String comments)将此属性列表(键和元素对)写入此 Properties表中,以适合于使用 load(InputStream)方法加载到 Properties表中的格式输出流。

示例演示:

public static void main(String[] args) throws IOException {
        Properties props = new Properties();
        //存入数据
        //V put(K key, V value) 将指定的key映射到此散列表中指定的value。key和value都不能是null。
        props.put("name", "Tom");
        props.put("age","8");
        props.put("address","newYork");

        //创建一个输出流
        BufferedWriter output = new BufferedWriter(new FileWriter("c.txt"));

        //调用Properties对应的方法,和IO融合,将内容写入
        //void	store(Writer writer, String comments)   注:comments 起到 起别名 的作用
        // 将此属性列表(键和元素对)写入此 Properties表中,以适合使用 load(Reader)方法的格式输出到输出字符流.
        props.store(output,"新学员登记");

        output.close();
    }

结果展示:

 

5.  Properties与字符缓存流(BufferedWriter)的文件内容的书写的运用:

返回值方法说明
voidload(InputStream inStream)从输入字节流读取属性列表(键和元素对)。
voidload(Reader reader)以简单的线性格式从输入字符流读取属性列表(关键字和元素对)。

示例演示:

public static void main(String[] args) throws IOException {
        Properties props = new Properties();

        //创建一个输入流
        BufferedReader input = new BufferedReader(new FileReader("c.txt"));

        //加载读取流, 将信息存入集合
        //void	load(Reader reader) 以简单的线性格式从输入字符流读取属性列表(关键字和元素对)
        props.load(input);

        input.close();

        //Properties的props对象的遍历
        Set<String> strings = props.stringPropertyNames();
        for (String key : strings) {
            String value = props.getProperty(key);
            System.out.println(key + "=" + value);
        }
    }

结果展示:

address=newYork
age=8
name=Tom

如果对你有帮助,请帮我点一下赞,我才有动力继续创作,谢谢!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值