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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 惠晖 中级黑马   /  2012-12-16 20:24  /  1600 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 惠晖 于 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次 也不出现 充值提示了?


评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

8 个回复

倒序浏览
高手在哪里
回复 使用道具 举报
我试了你的程序,除了注释信息的时间不一样,其他都一样,执行结果一样。
回复 使用道具 举报
张向辉 发表于 2012-12-16 22:13
我试了你的程序,除了注释信息的时间不一样,其他都一样,执行结果一样。 ...

首先测试的话  要有info 这个文件  里面写几个 jjiji=43  sajg=33 这样类型的值
回复 使用道具 举报
张向辉 发表于 2012-12-16 22:13
我试了你的程序,除了注释信息的时间不一样,其他都一样,执行结果一样。 ...

重写给你个代码测试下  运行5次 应该出现充值提示, 但是位置变了 就不提示了 为什么?
回复 使用道具 举报
有人解决没啊?????????????
回复 使用道具 举报
惠晖 中级黑马 2012-12-17 18:02:14
7#
还是没人回答。。。。。。。。。。。
回复 使用道具 举报
执行到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,往下执行到输出流并刷新。

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
惠晖 中级黑马 2012-12-17 20:22:54
9#
凊係柈泩 发表于 2012-12-17 18:57
执行到FileInputStream fis=new FileInputStream(file);把下面代码加上来这样就输出了,输出的是null,运行 ...

厉害 赞一个
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马