本帖最后由 陈国柱 于 2013-9-26 09:45 编辑
如果在(1)处建立输出流,即使不断重复运行代码,time的次数总是为1;但是如果在(2)处建立输出流,time的次数会随着不断重复运行代码而递增,直至超过指定次数,程序给出提示,为什么在两处地方建立输出流,time的次数会有所不同的?应该怎样理解两处建立输出流的区别呢?- package day18to21;
- /*
- 用于记录应用程序运行次数。
- 如果使用次数已到,那么给出注册提示。
- */
- import java.io.*;
- class RunCount
- {
- public static void main(String[] args) throws IOException
- {
- Properties prop = new Properties();
- File file = new File("count.ini");//新建文件作记录次数使用
- FileOutputStream fos = new FileOutputStream(file);//(1)在这里建立输出流,count总是为1。
- 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.println("拿钱,不然用不了");
- return;
- }
- }
- count++;
- prop.setProperty("time",count+"");
- // FileOutputStream fos = new FileOutputStream(file);//(2)建立输出流,计数器才有效。
- prop.store(fos,"");
-
- fos.close();
- fis.close();
- }
- }
复制代码 |