黑马程序员技术交流社区

标题: Properties类中的问题 [打印本页]

作者: 狼王    时间: 2013-7-7 06:58
标题: Properties类中的问题
本帖最后由 狼王 于 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>
复制代码

作者: lipingan0520    时间: 2013-7-7 07:28
  1.   if(count>=5)
  2. {
  3.                       System.out.println("您好,使用次数已到,拿钱");
  4.                       return;
  5. }//少了一对括号哦
复制代码

作者: chensc    时间: 2013-7-7 07:58
学习学习!
作者: 哪颗最亮的星星    时间: 2013-7-7 09:08
兄弟你的return语句放错文置了,应该放到if的要执行的语句体内,代码如下:
                 if(value!=null)
                {
                        count=Integer.parseInt(value);
                       
                        if(count>=5)
                        {
                                System.out.println("您好,使用次数已到,拿钱");
                                return;
                        }
                               
                }

还有用store的时候,第二个参数,最好写成英语字符串。
作者: 狼王    时间: 2013-7-7 10:34
哪颗最亮的星星 发表于 2013-7-7 09:08
兄弟你的return语句放错文置了,应该放到if的要执行的语句体内,代码如下:
                 if(value!=nu ...

谢谢你的回答,但应该你楼上那哥们的答案是对的,少了一对大括号。
作者: 狼王    时间: 2013-7-7 10:34
lipingan0520 发表于 2013-7-7 07:28

谢谢你的回答,你太细心了
作者: 哪颗最亮的星星    时间: 2013-7-7 10:39
狼王 发表于 2013-7-7 10:34
谢谢你的回答,但应该你楼上那哥们的答案是对的,少了一对大括号。

你如果用的是myeclipes的话,建议你设置下你代码的格式,设置完后,可以ctrl+shift+f
这样的话,一会不会出现多括号或少括号的问题
作者: 草貌路飞    时间: 2013-7-7 10:42
每次都提前return了 执行不到后面的语句
作者: 狼王    时间: 2013-7-7 11:53
哪颗最亮的星星 发表于 2013-7-7 10:39
你如果用的是myeclipes的话,建议你设置下你代码的格式,设置完后,可以ctrl+shift+f
这样的话,一会不会 ...

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

谢谢你的回答,问题已经解决了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2