A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王海生 中级黑马   /  2014-9-17 14:07  /  806 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

public class RunCount {

        /**
         * 用于记录程序运行的次数
         * 如果使用的次数已到,那么给出注册提示。
         * 很容易想到的是:计数器
         * 可是该计数器定义在程序中,随着程序的运行而存在于内存中,并进行自增。
         * 可是随着该应用程序的退出,该计数器也在内存中消失了。
         * 那么下一次再启动该程序,又重新从0开始计数,这样不符合我们的要求。程序即是结束,该计数也存在
         * 下次程序启动时会先加载计数器的值并且+1后重新存储起来。
         *
         * 所以要建立一个配置文件,用于记录该软件的使用次数。
         *
         * 该配置文件使用键值对的形式,这样便于阅读数据和操作数据
         * 键值对集合是map集合
         * 数据以文件形式存储,使用IO技术,那最合适就是用Properties类了
         * 配置文件可以实现应用程序数据的共享
         *
         * @param args
         * @throws IOException
         */
        public static void main(String[] args) throws IOException {
                // TODO 自动生成的方法存根
                //先定义一个集合
                Properties prop = new Properties();
                //将count.ini封装成对象。
                File file = new File("count.ini");
                //定义一个读取流,文件的扩展名就是集合的名字。
                //判断文件是否存在,如果不存在那么就创建一个
                if(!file.exists())
                        file.createNewFile();
                FileInputStream fis = new FileInputStream(file);
                //将流中的数据加载到集合中去
                prop.load(fis);
                int count = 0;
                //获取次数,第一次为空。
                String value = prop.getProperty("time");
                if(value!=null){
               
                        count = Integer.parseInt(value);
                        if(count>=5){
                                System.out.print("免费次数已经用完");
                        }
                }
                count++;
                //将计数器的值写回到集合中
                prop.setProperty("time", count+"");
                FileOutputStream fos = new FileOutputStream(file);
                //将数据写到文本中
                prop.store(fos, "");
                fos.close();
                fis.close();
        }

}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马