Properties的应用

---恢复内容开始---

对于不确定的数据,需要持久化到硬盘上,就得用到配置文件。

例子:软件试用次数

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

public class PropertiesTestDemo {

    public static void main(String[] args) throws IOException {
        
        /*
         * 需求:定义一个功能,记录程序运行的次数,满足5次后,给出提示,试用次数已到,请注册!
         * 思路:
         * 1.需要计数器
         * 2.计数器的值生命周期要比应用程序长,需要对计数器的值进行持久化。
         *     count = 1,里面存储的是键值方式,map集合,要和设备上的数据关联,需要IO技术
         * 集合+IO = Properties
         * 
         */
        boolean b = checkCount();
        if(b){
            run();
        }
    }
    
    public static boolean checkCount() throws IOException {
        
        boolean isRun = true;
        
        //1.将配置文件封装成File对象,因为要判断文件是否存在。
        File configFile = new File("tempfile\count.properties");
        if(!configFile.exists()){//如果不存在就创建一个
            configFile.createNewFile();
        }
        
        int count=0;//定义计数器
        
        Properties prop = new Properties();//用于存储配置文件中的数据
        //2.定义流对象
        FileInputStream fis = new FileInputStream(configFile);
        
        //3.将流中的数据加载到集合中
        prop.load(fis);
        
        //4.获取键对应的次数
        String value = prop.getProperty("count");
        
        if(value!=null){
            count = Integer.parseInt(value);
            if(count>=5){
                System.out.println("试用次数已到,请给钱!!");
                isRun=false;
            }
        }
        count++;//对取出的次数进行自增
        //将键count,和自增后的值重新存储到集合中。
        prop.setProperty("count", Integer.toString(count));
        
        //将集合中的数据存储到配置文件中
        FileOutputStream fos = new FileOutputStream(configFile);
        
        prop.store(fos, "flush data");
        
        fos.close();
        fis.close();
        return isRun;
    }

    public static void run(){
        System.out.println("软件运行");
    }

}

---恢复内容结束---

原文地址:https://www.cnblogs.com/qjlbky/p/5905760.html