Properties的练习题:
获取一个应用程序的运行次数,如果超过5次,给出使用次数已达上限请注册的提示。
思路:
- 计数器
每次程序启动时都需要技术一次,并且是在原有的次数上进行计数 - 计数器是一个变量,一旦程序结束,计数器消失…
那么再次启动程序时,计数器又恢复默认值
计数器生命更加长久一些,持久化,从内存中存储到硬盘中 - 如何使用这个计数器
首先程序启动时,应该先读取这个用于计数器信息的配置文件,获取上一次计数器次数,判断它的次数。
其次,对该次数进行自增,并且自增后的数重新存储到配置文件中。 - 文件中的信息该如何进行存储并体现
直接存储次数可以,但是不明确该数据的含义,所以需要取一个变量名(count)
如count=2; 所以使用键值对存储 Map 由于还需要对数据进行操作,所以还需要使用IO流
所以使用Properties
代码:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Properties;
public class Demo3 {
public static void main(String[] args) throws Exception {
getAppCount();
}
private static void getAppCount() throws Exception {
//将配置文件封装成File对象
File config=new File("count.properties");
if(!config.exists()){
config.createNewFile();
}
FileInputStream fis=new FileInputStream(config);
Properties prop=new Properties();
prop.load(fis);
//从集合中通过键获取次数
String value=prop.getProperty("time");
//定义一个计数器,记录获取到的次数
int count=0;
if(value!=null){
//如果配置文件中有键值信息,取出来转换为int类型
count=Integer.parseInt(value);
if(count>=5){
System.out.println("使用次数完毕,请充钱...");
return;
}
}
count++;
//将改变后的次数重新存储到集合中
prop.setProperty("time", count+"");
FileOutputStream fos=new FileOutputStream(config);
prop.store(fos, "");
fos.close();
fis.close();
}
}
连续点击5次运行程序,当在点击第六次运行程序时,控制台输出: