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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wisely 中级黑马   /  2014-7-15 17:53  /  1092 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

上代码
  1. import java.io.*;
  2. import java.util.*;
  3. public class Monday
  4. {
  5.         public static void main(String[] args) throws Exception
  6.         {
  7.                 File file=new File("Property.txt");
  8.                 if(!file.exists())
  9.                         file.createNewFile();
  10.                 FileInputStream fis=new FileInputStream(file);

  11.                 //①注意下面这句代码
  12.                 FileOutputStream fos=new FileOutputStream(file);
  13.                 Properties prop=new Properties();
  14.                 prop.load(fis);
  15.                 String value=prop.getProperty("times");
  16.                 int count=0;
  17.                 if(value!=null){
  18.                         count=Integer.parseInt(value);
  19.                         if(count>=5){
  20.                                 System.out.println("Game Over!");
  21.                                 return;
  22.                         }
  23.                 }
  24.                 count++;
  25.                 prop.setProperty("times",count+"");
  26.                
  27.                 //②注意下面这句代码
  28.                 //FileOutputStream fos=new FileOutputStream(file);
  29.                 prop.store(fos,"");
  30.                 fos.close();
  31.                 fis.close();
  32.         }
  33. }
复制代码


同样一句代码,放在①的位置就起不到作用,放在②的位置就能,为啥?求教。

PS:代码来源于毕老师视频,第20天-14。PS2:之前问过,囧的是刚发帖,网站系统就挂了……

3 个回复

倒序浏览
创建一般输出流对象也就是,OutputStream os = new FileOutputStream(file);只要创建该对象该file文件中的内容就被清空了,你可以试一试,一个有内容的txt文件,只创建该输出流对象,就写这一句代码,然后运行,该文件会变成空的。
这样就可以解释为什么在前面创建会运行不成功,因为
  1.                 //①注意下面这句代码
  2.                 FileOutputStream fos=new FileOutputStream(file);    //创建后file中无内容
  3.                 Properties prop=new Properties();
  4.                 prop.load(fis);   //在这里加载的是没有内容的file
复制代码

希望楼主能理解,按照我前面说的写一个例子,应该就能清楚了

评分

参与人数 1技术分 +1 收起 理由
SyouRai_Tsk + 1

查看全部评分

回复 使用道具 举报
爨庚轩 发表于 2014-7-15 18:51
创建一般输出流对象也就是,OutputStream os = new FileOutputStream(file);只要创建该对象该file文件中的 ...

大囧……

一直往Properties哪里想,忘了FileOutputStream自己的特性。

多谢指点迷津!
回复 使用道具 举报
wisely 发表于 2014-7-15 19:16
大囧……

一直往Properties哪里想,忘了FileOutputStream自己的特性。

我也是,运行了几次才发现的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马