黑马程序员技术交流社区

标题: 疑惑 [打印本页]

作者: 惠晖    时间: 2012-12-16 20:24
标题: 疑惑
本帖最后由 惠晖 于 2012-12-16 22:23 编辑

import java.util.*;
import java.io.*;
class PropertyDemo1
{
public static void main(String[] args) throws IOException
{
  Properties prop=new Properties();
  File file=new File("count.txt");
   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);//这句话如果移动到
        prop.store(fos,"");
  fis.close();
  fos.close();
        


   
   
}
}
  为什么注释的那句话移上去结果就不一样了   运行5次 也不出现 充值提示了?



作者: 惠晖    时间: 2012-12-16 21:39
高手在哪里
作者: Rancho_Gump    时间: 2012-12-16 22:13
我试了你的程序,除了注释信息的时间不一样,其他都一样,执行结果一样。
作者: 惠晖    时间: 2012-12-16 22:15
张向辉 发表于 2012-12-16 22:13
我试了你的程序,除了注释信息的时间不一样,其他都一样,执行结果一样。 ...

首先测试的话  要有info 这个文件  里面写几个 jjiji=43  sajg=33 这样类型的值

作者: 惠晖    时间: 2012-12-16 22:24
张向辉 发表于 2012-12-16 22:13
我试了你的程序,除了注释信息的时间不一样,其他都一样,执行结果一样。 ...

重写给你个代码测试下  运行5次 应该出现充值提示, 但是位置变了 就不提示了 为什么?
作者: 惠晖    时间: 2012-12-17 08:31
有人解决没啊?????????????
作者: 惠晖    时间: 2012-12-17 18:02
还是没人回答。。。。。。。。。。。
作者: 凊係柈泩    时间: 2012-12-17 18:57
执行到FileInputStream fis=new FileInputStream(file);把下面代码加上来这样就输出了,输出的是null,运行程序执行到prop.store(fos, "");以后值为1,这样就写进了文件中time=1;接下来在运行代码到FileOutputStream fos=new FileOutputStream(file);//这句话又重新置为了null,然后运行循环,最后文件中永远都是1,如果把FileOutputStream fos=new FileOutputStream(file);//这句话不动,可以看一下输入流读取文件,properties关联流,执行到int count = 0时值变成了1,执行下面代码执行到结束time=1;循环当在执行到load时properties文件中值为1,int count = 0时值变成了2,往下执行到输出流并刷新。

作者: 惠晖    时间: 2012-12-17 20:22
凊係柈泩 发表于 2012-12-17 18:57
执行到FileInputStream fis=new FileInputStream(file);把下面代码加上来这样就输出了,输出的是null,运行 ...

厉害 赞一个




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2