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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 唐王潮 于 2014-10-8 12:51 编辑

请先看完代码
  1. package pro.properties;

  2. import java.io.File;
  3. import java.io.FileInputStream;
  4. import java.io.FileOutputStream;
  5. import java.io.IOException;
  6. import java.util.Properties;
  7. import java.util.Set;

  8. public class propertiesTest {

  9.         public static void main(String[] args) throws IOException {
  10.                 /*
  11.                  * 需求:定义一个功能,记录程序运行的次数。满足5此后,给出提示,试用次数已到,请注册!
  12.                  *
  13.                  */
  14.                 boolean b = checkCount();
  15.                 if(b){
  16.                         run();
  17.                 }
  18.         }

  19.         private static boolean checkCount() throws IOException {
  20.                 boolean isrun = true;
  21.                
  22.                 File configfile = new File("tempfile\\newinfo.propreties");
  23.                 if(!configfile.exists()){
  24.                         configfile.createNewFile();
  25.                 }
  26.                 int count = 0;
  27.                
  28.                 Properties prop = new Properties();
  29.                 FileInputStream fis = new FileInputStream(configfile);
  30. //             FileOutputStream fos = new FileOutputStream(configfile);//为什么放到此处 写入配置文件中的count的值总是为1??????
  31.                 prop.load(fis);
  32.                
  33.                 String value = prop.getProperty("count");
  34.                 if(value!=null){
  35.                         count = Integer.parseInt(value);
  36.                         if(count>=5){
  37.                                 System.out.println("给钱");
  38.                                 return false;
  39.                         }
  40.                 }
  41.                 count++;
  42.                 prop.setProperty("count", Integer.toString(count));
  43.                 FileOutputStream fos = new FileOutputStream(configfile);//放到此处没什么问题,正常
  44.                
  45.                 prop.store(fos,"app,time");
  46.                
  47.                
  48.                 return isrun;
  49.                
  50.                
  51.         }

  52.         private static void run() {
  53.                 System.out.println("程序运行");
  54.         }
  55.         
  56. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
敏敏好学 + 1

查看全部评分

3 个回复

倒序浏览
zengming13 发表于 2014-10-8 15:15
因为你对一个文件同时打开输入流和输出流,导致后打开的流有效,先打开的输入流失效,导致配置文件不能正确 ...

非常感谢,根据你的回答,再加上自己的测试,确实如你所说,后打开的流会覆盖先打开的流。
回复 使用道具 举报
学习了。。。我也在学这块的知识了。。。
回复 使用道具 举报
还没学。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马