• Properties集合小应用--限制用户对软件的使用次数


      我们可以注意到一些付费软件可以试用一定的次数,超过限制次数后,就必须到官网购买正版才能继续使用。

    这里就简单地模拟一下这种效果的实现。

    * 需求:记录程序的启动次数,当启动次数超过3次后,要求使用者注册信息,不能再使用。
    *思路
    *1.需要一个计数器,每当程序启动后,计数器就在原来的基础上自增。
    *
    *2.计数器是一个变量,程序一旦关闭,这个变量就不存在了,所以需要把计数器做持久化的
    *存储,把它存储到硬盘的配置文件中,要用到IO技术。


    *3.每次程序启动,就读取配置文件。直接在文件中存储数字,表达信息不明确。
    *这时要使用键值对的形式存储,使用Map集合+io技术的综合,即Properties集合。
    *这样,把配置文件内容读取到Properties集合中,对计数器做使用次数判断,
    *如果在3次以内,就把计数器自增后,在写回配置文件中去
    *否则,要求使用者注册,程序关闭。

    本程序设置简单的图形化界面和提示信息,把使用次数定为3次。

    代码如下:

     1 public class PropertiesTest  extends JFrame{
     2 private JLabel show;
     3 private JLabel notice;
     4 public PropertiesTest(){
     5     super("达达财务软件");
     6     this.setLayout(new BorderLayout());
     7     //创建标签,并且使标签在其显示区域内垂直居中对齐
     8     show=new JLabel("欢迎使用达达财务软件",JLabel.CENTER);
     9     notice=new JLabel("",JLabel.CENTER);
    10     this.add(show);
    11     this.add(notice,BorderLayout.SOUTH);
    12     
    13     this.setBounds(500, 200, 300, 300);
    14     //添加监听器,为窗口设置关闭动作
    15     this.addWindowListener(new WindowAdapter() {
    16         @Override
    17         public void windowClosing(WindowEvent arg0) {
    18             System.exit(0);
    19         }
    20     });
    21     this.setVisible(true);
    22 }
    23     public static void main(String[] args) throws IOException, InterruptedException {
    24             new PropertiesTest().getCounts();
    25     }
    26 
    27     public   void getCounts() throws IOException, InterruptedException {
    28         //把文件封装成对象
    29         File confile=new File("count.ini");
    30         if(!confile.exists()){//文件不存在
    31             confile.createNewFile();//创建新文件
    32         }
    33         FileReader fr=new FileReader(confile);//输入流
    34         Properties prop=new Properties();
    35         prop.load(fr);//加载文件中的内容
    36         int count=0;//用来记录程序启动次数
    37         String value=prop.getProperty("times");//获取文件中存储的使用次数
    38         
    39         if(value!=null){//如果不是第一次启动,
    40             count=Integer.parseInt(value);//读取文件中的启动次数,以便在次基础上自增
    41             if(count+1>3){//对使用次数进行判断
    42                 //改变标签提示信息
    43                 show.setText("试用结束,请在官网上注册后再使用,谢谢!");
    44                 Thread.sleep(3000);
    45                 System.exit(0);
    46             }
    47         }
    48         count++;//不管是否是第一次启动软件,count都自增一次
    49         notice.setText("您已经使用了"+count+"次,"+"剩余使用次数"+(3-count)+"次.");
    50         
    51         //修改集合中的数据
    52         prop.setProperty("times", ""+count);
    53         //把集合写回到配置文件中
    54         FileWriter fw=new FileWriter(confile);
    55         prop.store(fw, "Times");
    56         fr.close();
    57         fw.close();
    58     }
    59 }

    下面分别是运行第一次和第四次的界面显示:

        

    用配置文件来记录软件使用次数,仅仅是很小的一种应用,更多的时候,配置文件用来记录用户对软件进行的个性化设置。

    用户在软件的图形化界面上对软件进行个性设置,

    这些都会写入软件的配置文件中持久存储,这样软件在下次启动时就可以读取配置文件中的设置。

    只要配置文件保留,重装软件后仍然可以恢复之间前对软件的设置。

    Windows中的配置文件多以".ini"结尾,Java中的配置文件多以".properties"结尾。

    如果要便捷地存储更加复杂的配置信息,就要用到XML文件。

  • 相关阅读:
    使用 supervisor 管理进程
    用gunicorn+gevent启动Flask项目
    pip与apt-get
    Python计算地图上两点经纬度间的距离
    java基础学习总结——数组
    java基础学习总结——异常处理
    java基础学习总结——面向对象1
    java基础学习总结——基础语法2
    java基础学习总结——基础语法1
    java基础学习总结——java环境变量配置
  • 原文地址:https://www.cnblogs.com/wsw-tcsygrwfqd/p/6613807.html
Copyright © 2020-2023  润新知