使用IO流技术和Properties集合来完成某种软件中的一种限制免费使用次数的功能

public static void main(String[] args) throws Exception {
       
        //(注意: 每次运行程序时,到底几次可以猜对不做限制)

        //创建配置文件config.properties对应的File文件
        File configFile = new File("Day13-stream\\config.properties");
        //如果配置文件不存在,则创建配置文件
        if (!configFile.exists()) {
            configFile.createNewFile();
        }
        //创建properties对象
        Properties p = new Properties();
        //把配置文件中的内容加载到properties对象中去
        p.load(new FileInputStream(configFile));
        //获取键times对应的值,表示程序已经运行的次数
        String times = p.getProperty("times");
        if (times != null && times.equals("3")) {
            System.out.println("您的免费次数已经用完,请您进行充值!!!");
            System.exit(0);
        } else {
            System.out.println("您的免费试用机会剩余: " + (3 - (times == null ? 0 : Integer.parseInt(times))) + " 次,请珍惜~~");
            //调用方法,完成猜数字
            guessNum();
        }
        //如果times为null,说明第一次运行,向Properties集合对象存储键值对times=1
        if (times == null) {
            p.setProperty("times", "1");
        } else {
            //如果times不为null,说明不是第一次运行,向Properties集合对象存储键值对times=原有次数+1
            p.setProperty("times", Integer.parseInt(times) + 1 + " ");
        }

        //把Properties中的内容写入到文件
        p.store(new FileOutputStream(configFile), "I do not want to say anymore!!!");
    }

    private static void guessNum() {
        //创建Random对象
        Random r = new Random();
        //使用Random对象生成一个1-100(包含1,包含100)之间的数字
        int guessNum = r.nextInt(100) + 1;
        //创建Scanner对象
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("请输入一个整数(1-100之间):");
            //获取键盘录入用户猜测的数据,保存到变量inputNum中
            int inputNum = sc.nextInt();
            //使用if第三种格式,对inputNum和guessNum中的值进行比较
            if (inputNum > guessNum) {
                System.out.println("您猜的大了~~");
            } else if (inputNum < guessNum) {
                System.out.println("您猜的数小了~!!!!");
            } else {
                System.out.println("恭喜你,猜对了,可以领取奖励啦!!!!!!");
                break;//while循环结束
            }
        }
    }

只需要在使用软件的时候把使用次数,记录到配置文件中,每次使用时先读取配置文件信息,检测如果超过免费次数,停止软件使用(结束JVM)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值