Properties类

本文详细介绍了Java中的Properties类,包括其特点、使用方法及与IO技术的结合应用。通过实例展示了如何进行键值对的设置与获取,从文件读取配置信息,以及更新配置文件的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Properties类

(一). 基本认识

1)是hashTable的子类,具备了map集合的特点;
2)存储的键值对都是字符串,不需要泛型;
3)是集合中和IO技术相结合的集合容器;
4)该对象的特点:可以用于键值对形式的配置文件。

(二). 设置和获取元素方法

1)setProperty(key,value):设置键和值
2)getProperty(key):根据键,取得相对应的值
3)stringPropertyNames():取得集合中的所有键,返回的是set集合。

(三)流中文件存入集合中

1)load(输入流):加载来自文件输入流的数据到Properties集合中
2)store(输出流):将Properties集合中的数据通过输出流保存到文件中。
3)list(打印流):将Properties集合中的数据通过打印流显示出来。

示例1:

import java.util.*;

class PropertiesDemo
{
    public static void main(String args[])
    {

    }


    public static void setAndGet()
    {
        Properties pro = new Properties();
        pro.setProperty("zhangsan","32");
        pro.setProperty("lisi","34");//设置键和值

        String value = pro.getProperty("lisi");//根据键取得值

        pro.setProperty("lisi",89+"");//可以修改存入的值

        Set<String> names = pro.stringPropertyNames();
        for(String key:names)
        {
            System.out.println(key+"::"+pro.getProperty(key));
        }

    }
}

示例2:

如何将流中(文件)的数据存储到集合中(Properties)?
思路:读取一行数据,分割为key和value,存入到另一个文件,并保存。

public static void method2
    {
        Properties pro = new Properties();
        FileInputStream fis = new FileInputStream("info.txt");

        pro.load(fis);

        pro.setProperty("wangwu","90");
        FileOutputStream fos = new FileOutputStream("info.txt");
        pro.store(fos,"hahah");

        System.out.println(pro);
        pro.list(System.out);

        fos.close();
        fis.close();
    }



    public static void method1
    {
        BufferedReader bfr = new BufferedReader(new FileReader("info.txt"));
        Properties pro = new Properties();

        String line = null;
        while((line=bfw.readLine())!=null)
        {
            String[] str = line.split("=");
            pro.setProperty(str[0],str[1]);
        }
        bufr.close();
        System.out.println(pro);
    }

示例3:

用于记录应用程序执行次数,当到达一定次数,则给出提示信息
作用:配置文件可以实现应用程序的数据共享,当应用程序关闭时,内存空间也关闭。

import java.util.*;

class PropertiesDemo2
{
    public static void main(String args[])
    {

    }

    public static void runCount
    {
        Properties pro = new Properties();
        File file = new File("count.ini");

        if(!file.exists())
        {
            file.createNewFile();
        }
        FileInputStream fis = new FileInputStream(file);

        pro.load(fis);

        int count = 0;
        String value = pro.getProperty("time");

        if(value!=null)
        {   
            count = Integer.parseInt(value);
            if(count>=5)
            {
                System.out.println("您好,使用次数已到,请续费!")
            }

        }
        count ++;
        pro.setProperty("time",count+"");

        FileOutputStream fos = new FileOutputStream(file);
        pro.store(fos,"");

        fis.close();
        fos.close();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值