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

© 黑马连家华 中级黑马   /  2012-7-10 15:42  /  1430 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Noword 于 2012-7-10 17:19 编辑

public static void runLimit(int num) throws Exception
        {
                File file = new File("limit.ini");
                if(!file.exists())
                {
                        file.createNewFile();
                }
                FileInputStream fis = new FileInputStream(file);
                FileOutputStream fos = new FileOutputStream(file);
                Properties pro = new Properties();
                pro.load(fis);
                if(pro.getProperty("count") == null)
                {
                        pro.setProperty("count","1");
                        pro.store(fos,"");
                }
                else
                {
                        int count = Integer.parseInt(pro.getProperty("count"));
                        if(count >= num)
                        {
                                System.out.println("使用次数已到,请注册");
                        }
                        else
                        {
                                pro.setProperty("count", ++count+"");
                                pro.store(fos,"");
                        }
                }
                fis.close();
                fos.close();
        }

结果文件里面一直是 count = 1

3 个回复

倒序浏览
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Properties;


public class FileTest
{
        public static void main(String[] args)throws Exception
        {
                runLimit(5);
        }
        public static void runLimit(int num) throws Exception
    {
            File file = new File("limit.ini");
            if(!file.exists())
            {
                    file.createNewFile();
            }
            FileInputStream fis = new FileInputStream(file);
            //FileOutputStream fos = new FileOutputStream(file);//放到下面那个位置,因为
                                          //在这里的话,还没等到file加载到pro里就被初始化了
   
            Properties pro = new Properties();
            pro.load(fis);
           FileOutputStream fos = new FileOutputStream(file);   
          if(pro.getProperty("count") == null)
            {
                    pro.setProperty("count","1");
                    pro.store(fos,"");
                    System.out.println("one time");
            }
            else
            {
                    int count = Integer.parseInt(pro.getProperty("count"));
                    if(count >= num)
                    {
                            System.out.println("使用次数已到,请注册");
                            pro.store(fos,"");//在这里加上这条存储语句,
                               //千万别忘了存储,否则就达不到想要的结果了
   
                }
                    else
                    {
                            pro.setProperty("count", (++count)+"");
                            pro.store(fos,"");
                            System.out.println(count + "times");
                    }
            }
            fis.close();
            fos.close();
    }


}

评分

参与人数 1技术分 +1 收起 理由
刘笑 + 1 赞一个!

查看全部评分

回复 使用道具 举报
File file = new File("limit.ini");
                if(!file.exists())
                {
                        file.createNewFile();
                }
                FileInputStream fis = new FileInputStream(file);
               
                Properties pro = new Properties();
                pro.load(fis);
                if(pro.getProperty("count") == null)
               
                        pro.setProperty("count","1");
               
                int count = Integer.parseInt(pro.getProperty("count"));
                //这里的else没什么用删了
                if(count >= 5)
                       
                      System.out.println("使用次数已到,请注册");                                  
                pro.setProperty("count", ++count+"");
                                               
        FileOutputStream fos = new FileOutputStream(file);//注意等设置完count的值再写入文件
        pro.store(fos,"");
                       
               
                fis.close();
                fos.close();
回复 使用道具 举报
李伟 发表于 2012-7-10 16:16
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

//FileOutputStream fos = new FileOutputStream(file);//放到下面那个位置,因为
                                          //在这里的话,还没等到file加载到pro里就被初始化了   
关键就是这句话

谢谢了哥们儿
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马