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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 狼王 高级黑马   /  2013-7-7 06:58  /  1154 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 狼王 于 2013-7-7 10:35 编辑
  1. <p><p>public class PropertiesTest {
  2.         public static void main(String[] args) throws IOException {        
  3.          //将配置文件封装成File对象
  4.          File file = new File("count.ini");
  5.            if(!file.exists()){
  6.                    file.createNewFile();
  7.            }
  8.          FileInputStream fis = new FileInputStream(file);
  9.          Properties prop = new Properties();
  10.          prop.load(fis);     
  11.          //从集合中通过键获取次数
  12.          String value = prop.getProperty("time");
  13.          //定义计数器,记录获取到的次数
  14.          int count = 0;
  15.          if(value!=null){
  16.                   count = Integer.parseInt(value);
  17.                   if(count>=5)
  18.                           System.out.println("您好,使用次数已到,拿钱");
  19.                       return;
  20.          }           
  21.          count++;
  22.          //将改变后的次数重新存储到集合中
  23.          prop.setProperty("time", count+"");
  24.          FileOutputStream fos = new FileOutputStream(file);
  25.          prop.store(fos, "配置文件");
  26.          
  27.          fos.close();
  28.          fis.close();
  29.         }
  30. }
  31.       在毕老师的视频中,讲到Properties时,讲了这样一个例子:用于记录应用程序运行的次数。</p><p>如果使用次数已到,那么给出注册提示。可是我的代码和他一样的,但结果我的代码不会自增,</p><p>即无论你运行多少次,键time的值永远是0。我不知道错哪了,请问哪位大侠能指点一下。感</p><p>激不尽。</p>
复制代码

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

9 个回复

倒序浏览
  1.   if(count>=5)
  2. {
  3.                       System.out.println("您好,使用次数已到,拿钱");
  4.                       return;
  5. }//少了一对括号哦
复制代码

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
学习学习!
回复 使用道具 举报
兄弟你的return语句放错文置了,应该放到if的要执行的语句体内,代码如下:
                 if(value!=null)
                {
                        count=Integer.parseInt(value);
                       
                        if(count>=5)
                        {
                                System.out.println("您好,使用次数已到,拿钱");
                                return;
                        }
                               
                }

还有用store的时候,第二个参数,最好写成英语字符串。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
哪颗最亮的星星 发表于 2013-7-7 09:08
兄弟你的return语句放错文置了,应该放到if的要执行的语句体内,代码如下:
                 if(value!=nu ...

谢谢你的回答,但应该你楼上那哥们的答案是对的,少了一对大括号。
回复 使用道具 举报

谢谢你的回答,你太细心了
回复 使用道具 举报
狼王 发表于 2013-7-7 10:34
谢谢你的回答,但应该你楼上那哥们的答案是对的,少了一对大括号。

你如果用的是myeclipes的话,建议你设置下你代码的格式,设置完后,可以ctrl+shift+f
这样的话,一会不会出现多括号或少括号的问题
回复 使用道具 举报
每次都提前return了 执行不到后面的语句
回复 使用道具 举报
哪颗最亮的星星 发表于 2013-7-7 10:39
你如果用的是myeclipes的话,建议你设置下你代码的格式,设置完后,可以ctrl+shift+f
这样的话,一会不会 ...

我正因为ctrl+shift+f困惑,原来这个组合键有用,现在不知道为什么就没用了。你知道吗?我用的是eclipse
回复 使用道具 举报
草貌路飞 发表于 2013-7-7 10:42
每次都提前return了 执行不到后面的语句

谢谢你的回答,问题已经解决了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马