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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 张向辉 于 2013-2-3 12:15 编辑

/*
需求:
编写程序,用于记录程序运行的次数,如果运行的次数已到,要求用户注册会员账号;
思路:
1.根据题目需求,很容易想到计数器,可是如果计数器定义在程序中,那么该计数器会随着应用程序的退出,而从计算机内存中消失;
2.要想使程序结束,计数器的值也存在,程序启动时,先加载该计数器的值,然后加1在存储起来这就要求建立一个配置文件,专门用
   于存放记录该软件运行次数的计数器;
3.配置文件最好使用键值对,这样便于阅读,并操作数据;
4.键值对数据时存放在map集合中,数据是以文件形式存储,会使用io技术,io+map-->Properties,这样配置文件既可以共享,又方便操作;
*/
import java.io.*;
import java.util.*;
class  RunCountDemo
{
public static void main(String[] args) throws IOException
{
  runCount();
}
public static void runCount() throws IOException
{
  Properties prop=new Properties();
  //建立一个Properties集合,用于临时存放关于程序运行次数的属性信息;
  File f=new File("F:\\JAVAWORK\\day20\\runInfo.ini");
  //声明一个File对象,指向"F:\\JAVAWORK\\day20\\runInfo.ini";
//BufferedWriter bufw=new BufferedWriter(new FileWriter(f));
  //一开始这句废代码往删了,导致49行(下方的红色字体部分)的代码好像就能读一次,在运行的时候,就发现无论程序运行多少次,"F:\\JAVAWORK\\day20\\runInfo.ini"里的文件都不在更新,这是
  //怎么回事啊,???

  if (!f.exists())
  //判断File对象f指向的文件是否存在;
  {
   f.createNewFile();
   //如果不存在,中创立一个;
  }
  FileInputStream fis=new FileInputStream(f);
  //把f对象关联到输入流中;
  prop.load(fis);
  //通过Properties对象自带的方法load(),从输入流中读取属性信息;
  int count=0;
  //定义一个计数器,初始值为0;
  String value=prop.getProperty("time");
  //通过键"time",获取相对应的值;
  if (value!=null)
  {
   count=Integer.parseInt(value);
   if (count>=5)
   {
    System.out.println("您的试用期限已到,请开通会员!");
    return;
   }
  }  
  count++;
  prop.setProperty("time",count+"");
  //把相应的键值对存入到Properties集合中;
  prop.list(new PrintStream(f));
  //通过list方法,将属性信息输出到指定的输出流中,从而存入到文件中;
}
}

2 个回复

倒序浏览
import java.io.*;
import java.util.*;
class  RunCountDemo
{
public static void main(String[] args) throws IOException
{
  runCount();
}
public static void runCount() throws IOException
{
  Properties prop=new Properties();
  //建立一个Properties集合,用于临时存放关于程序运行次数的属性信息;
  File f=new File("c:\\Statistics.ini");
  //声明一个File对象,指向"F:\\JAVAWORK\\day20\\runInfo.ini";
//BufferedWriter bufw=new BufferedWriter(new FileWriter(f));
  //一开始这句废代码往删了,导致49行(下方的红色字体部分)的代码好像就能读一次,在运行的时候,就发现无论程序运行多少次,"F:\\JAVAWORK\\day20\\runInfo.ini"里的文件都不在更新,这是
  //怎么回事啊,???
  if (!f.exists())
  //判断File对象f指向的文件是否存在;
  {
   f.createNewFile();
   //如果不存在,中创立一个;
  }
  FileInputStream fis=new FileInputStream(f);
  //把f对象关联到输入流中;
  prop.load(fis);
  //通过Properties对象自带的方法load(),从输入流中读取属性信息;
  int count=0;
  //定义一个计数器,初始值为0;
  String value=prop.getProperty("time");
  //通过键"time",获取相对应的值;
  if (value!=null)
  {
   count=Integer.parseInt(value);
   if (count>=5)
   {
    System.out.println("您的试用期限已到,请开通会员!");
    return;
   }
  }  
  count++;
  prop.setProperty("time",count+"");
  //把相应的键值对存入到Properties集合中;
  prop.list(new PrintStream(f));
  //通过list方法,将属性信息输出到指定的输出流中,从而存入到文件中;
}
}

我试了下
运行一次time时间+1  

评分

参与人数 1技术分 +1 收起 理由
黄锦成 + 1

查看全部评分

回复 使用道具 举报
请勿复制他人帖子,技术分不是入学的门槛而是为了帮助大家学习而存在的。

请勿再次发此类帖子了!

此贴就关闭了。此后如有再次发现直接封禁处理,请看到此贴的会员也加以注意。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马