/*
要求:
当一个程序使用五次以后,就要停止运行,并且提示续费
思路: 首先程序运行次数需要用计数器,并且需要以键值对的方式进行存储,所以可以采用map集合.
程序退出后,内存清空,所以下次开始时候又有重零开始,所以需要把这个次数输出到硬盘文件上,下次打开程序时候,要加载进来
同时,计数器要加上1,并且覆盖掉以前的数值,因此需要一个输入流,和输出流。map集合与io联系最紧密的是Properties
*/
import java.util.*;
import java.io.*;
class Jishu
{
public static void main(String[] args) throws Exception
{
Properties p=new Properties();
File f=new File("log.txt");
if(!f.exists())
f.createNewFile();
BufferedReader br=new BufferedReader(new FileReader(f));//可以使用Properties里面的load方法获取键值对,下次储存可以用store
BufferedOutputStream bo=new BufferedOutputStream(new FileOutputStream(f));
int count=0;
p.load(br);// 键值对储存在p里面
if(p.getProperty("name")!=null)
{
count=Integer.parseInt(p.getProperty("name"));//这一步是关键,因为如果存在键值对,就要把值取出,赋给count,然后自加
count++;
if(count>=5)
{
System.out.println("给钱!!!!");
return;//break和return差别????
}
p.setProperty("name",""+count);
}
else
{
count++;//如果没有键值对就不需取出
p.setProperty("name",count+"");
}
p.store(bo,"");
}
}
|