package FileDemo;

 import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties; public class PropertyTest { /**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException { /*
* 定义功能,获取一个应用程序运行的次数,如果超过5次,给出使用次数已到请注册的提示。并不要在运行程序。
*
* 思路: 1,应该有计数器。 每次程序启动都需要计数一次,并且是在原有的次数上进行计数。 2,计数器就是一个变量。
* 突然冒出一想法,程序启动时候进行计数,计数器必须存在于内存并进行运算。
* 可是程序一结束,计数器消失了。那么再次启动该程序,计数器又重新被初始化了。 而我们需要多次启动同一个应用程序,使用的是同一个计数器。
* 这就需要计数器的生命周期变长,从内存存储到硬盘文件中。
*
* 3,如何使用这个计数器呢? 首先,程序启动时,应该先读取这个用于记录计数器信息的配置文件。 获取上一次计数器次数。 并进行使用次数的判断。
* 其次,对该次数进行自增,并自增后的次数重新存储到配置文件中。
*
*
* 4,文件中的信息该如何进行存储并体现。 直接存储次数值可以,但是不明确该数据的含义。 所以起名字就变得很重要。
* 这就有了名字和值的对应,所以可以使用键值对。 可是映射关系map集合搞定,又需要读取硬盘上的数据,所以map+io =
* Properties.
*/
getAppCount();
} private static void getAppCount() throws IOException {
File conFile = new File("count.properties");
if (!conFile.exists()) {
conFile.createNewFile();
}
FileInputStream fis = new FileInputStream(conFile);
Properties prop = new Properties();
prop.load(fis);
String values = prop.getProperty("time");
int count = 0;
if (values != null) {
count = Integer.parseInt(values);
if (count > 5) {
throw new RuntimeException("使用次数限制已到");
}
}
count++;
prop.setProperty("time", count+"");
FileOutputStream fos = new FileOutputStream(conFile);
prop.store(fos, "");
fos.close();
fis.close(); }
}

Java之Property-统获取一个应用程序运行的次数的更多相关文章

  1. 简单的Java网络爬虫(获取一个网页中的邮箱)

    import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; impo ...

  2. 下载eclipse 配置eclipse 新建Java项目 写一个小程序 运行

    为了更好的学习java,我打算下载个eclipse 地址:https://www.eclipse.org/downloads/packages/ 我们需要下载的版本是Eclipse IDE for J ...

  3. Java中利用正则表达式获取一个网页中的所有邮箱地址

    package cn.tms.ui; import java.io.BufferedReader; import java.io.File; import java.io.FileWriter; im ...

  4. java 环境变量配置与第一个程序运行

    从开始下载jdk,到运行出java第一个程序 ,花了5天时间 ,不过我相信万事开头难 ,以后会越来越好的 ,加油! jdk的下载: 在oracle官网上即可下载,jdk安装包,下载完以后运行安装 ,路 ...

  5. linux下模拟一个木马程序运行过程

    预备知识: 将一个程序放入到后台,悄悄的执行 ./xxx.sh & 进程: 用户进程:由用户来管理 系统进程:由系统内核自行管理 系统中的每个进程,都有一个位置的ID,这就是pid,而且每次启 ...

  6. winform只允许一个应用程序运行 2014-12-08 09:51 31人阅读 评论(0) 收藏

    使用互斥体Mutex类型 导入命名空间 using System.Threading; //声明互斥体 Mutex mutex = new Mutex(false, "ThisShouldO ...

  7. winform只允许一个应用程序运行

    使用互斥体Mutex类型 using System.Threading; //声明互斥体 Mutex mutex = new Mutex(false, "ThisShouldOnlyRunO ...

  8. 今天在网上查看了一个socket程序,运行的时候一直报错,经过队友解决?

    1.首先是问题代码ip_port = ('192.168.12.2',8001)2.上边的代码本身没有问题,但是必须经过修改自己本机的局域网IP地址才能顺利链接请参考上一篇blog的地址,查看本机的i ...

  9. 一起学Hadoop——使用IDEA编写第一个MapReduce程序(Java和Python)

    上一篇我们学习了MapReduce的原理,今天我们使用代码来加深对MapReduce原理的理解. wordcount是Hadoop入门的经典例子,我们也不能免俗,也使用这个例子作为学习Hadoop的第 ...

随机推荐

  1. CodeForces 299B Ksusha the Squirrel

    http://codeforces.com/problemset/problem/299/B 题意 :这个题挺简单的,就是说这个姑娘不喜欢走有石头的扇形,所以给你一个k的值,代表她一次可以跳多少扇形. ...

  2. 如何将DJANGO轻量级化

    看看这本书,应该有收获. 不用DJANGO-ADMIN STARTPROJECT XXX 一个文件,一样可以写出可以运行的原生DJANGO哟. import hashlib import sys im ...

  3. Ubuntu环境下手动配置zookeeper

    配置zookeeper 注意:因为是单机伪分布式配置,故同一机器上有3个server zookeeper文件格式如下 home---zookeeper---server0---zookeeper | ...

  4. hdu 4657 Find Permutation

    思路:用一个数组index[]存放a的下标,初始化令a[i]=c[i]=index[i]=i; 假设当前处理的i,初始时令cur=i:j为大于i的任意值.每次操作找a[l]=c[cur]-b[cur] ...

  5. java I/O Stream 代码学习总结

    一. InputStream 类学习介绍 mark方法 public void mark(int readlimit) 在此输入流中标记当前的位置.对 reset 方法的后续调用会在最后标记的位置重新 ...

  6. 李洪强漫谈iOS开发[C语言-014]-变量

    01 变量的概念 02 - 变量的语法 03 变量的使用

  7. [topcoder]AvoidRoads

    二维动态规划.和某一道leetcode的题目差不多.就是多了blocks的数组或集合. 本次解题的心得有:1.根据题意使用集合表示阻碍:2.使用字符串的形式表示整数的pair,简洁明了:3.p1到p2 ...

  8. C#基础精华02(静态类,值类型,引用类型,枚举,结构,ref与out)

    静态类 静态类不能被其他类继承,静态成员亦不能被继承(访问的是同一个),备注1. 静态类只能继承自Object类.(静态类不能继承自其它类.) 继承(多态).静态本身就是相反的. 静态类不能实现任何接 ...

  9. matlab 在代码中,显示错误,退出程序

    使用函数error('message_id', 'message'),出现错误时函数中止运行. 参考http://www.ilovematlab.cn/thread-43261-1-1.html

  10. Python学习笔记一--字符串的使用

    一.基本操作 1. 合并字符串:“+” 2. 打印重复的字符串:"*"      3. 按位获取字符串中的字符:索引      4. 按位获取字符串中的子字符串:分片      5 ...