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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qq8921310 高级黑马   /  2014-11-2 22:15  /  1705 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. Properties pro = new Properties();
  2.                 File file = new File("E:\\java11\\test\\info.ini");
  3.                 FileInputStream is = new FileInputStream(file);
  4.                 FileOutputStream os = new FileOutputStream(file);
  5.                 if (!file.exists())
  6.                 {
  7.                         file.createNewFile();       
  8.                         os.write("value=0".getBytes());
  9.                         os.flush();
  10.                 }
  11.                
  12.                 pro.load(is);
  13.                 int count =1;
  14.                 String value = pro.getProperty("value");

  15.                 //if(value!=null)
  16.                 //{
  17.                         count = Integer.parseInt(value);
  18.                         if ( count>3)
  19.                         {
  20.                                 System.out.println("使用次数已到,请立刻充值");
  21.                                 return ;
  22.                         }               
  23.                
  24.                 //}       
  25.                 count++;

  26.                 pro.setProperty("value",count+"");

  27.                
  28.                 pro.store(os,"haha");
  29.         }
复制代码


问题:1 //if(value!=null)的时候 会提示null。我前面已经创建了为什么还会提示空
问题:2 当添加上if(value!=null)时 编译可以成功,但是功能不能实现,哪里的逻辑出了问题。

注:这不是视频里的原代码。是自己理解写的。可能有点乱。

评分

参与人数 1黑马币 +1 收起 理由
杨佳名 + 1

查看全部评分

6 个回复

倒序浏览
现在知道是第八行 有问题,但是不知道为什么会影响这么大。
回复 使用道具 举报
在新建FileOutputStream对象时会自动创建文件,也就是说file.exsits()已经为true了,所以,你的第一个if语句中的内容一定不会执行,也就是"value=0"没有被写入文件,所以下面的value是null。
回复 使用道具 举报
FileOutputStream对象的创建,一定要等到数据读取到Properties对象中后,因为一旦输出流关联文件,会重写数据。这个代码就是数据在外存与内存间转移
回复 使用道具 举报
将os.write("value=0".getBytes());os.flush();移出括号外,new 一个FileOutputStream对象的时候会自动创建一个File文件,所以你放在括号中并不好执行,也就是没有把数据写入配置文件中,所以会出现null的现象
回复 使用道具 举报
inception 来自手机 中级黑马 2014-11-3 02:01:38
地板
本帖最后由 inception 于 2014-11-3 02:10 编辑

想错了,应该是覆盖的问题吧
回复 使用道具 举报
李天富 发表于 2014-11-2 23:23
在新建FileOutputStream对象时会自动创建文件,也就是说file.exsits()已经为true了,所以,你的第一个if语 ...

明白了。,3Q
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马