• 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("软件运行");
        }
    
    }

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

  • 相关阅读:
    JS知识点整理
    CSS3疑难问题---6、伪类和伪元素的区别
    人物志---宋霭龄
    范仁义js课程---4、js基本注意点
    legend3---24、软件更新的时候记得保留上两个版本的软件和数据
    心得体悟帖---200215(被动录课效率太低了)
    Java中迭代列表中数据时几种循环写法的效率比较
    Win10
    Java字符串的最大长度
    Android Application对象必须掌握的七点
  • 原文地址:https://www.cnblogs.com/qjlbky/p/5905760.html
Copyright © 2020-2023  润新知