程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 流關閉-BufferedReader與BufferedWriter流這樣用不關閉會一直駐留在內存中嗎

流關閉-BufferedReader與BufferedWriter流這樣用不關閉會一直駐留在內存中嗎

編輯:編程綜合問答
BufferedReader與BufferedWriter流這樣用不關閉會一直駐留在內存中嗎

下面是代碼部分:

    public static void count() throws IOException {
        Properties prop = new Properties();

        File file = new File("app.ini");

        if (!file.exists())
            file.createNewFile();

        prop.load(new BufferedReader(new FileReader(file)));

        int count = 0;
        String appRunCount = prop.getProperty("appruncount");
        if (appRunCount != null) {
            count = Integer.parseInt(appRunCount);
            if (count >= 5) {
                System.out.println("試用次數超過限制,請注冊後使用");
                return;
            }
        }
        count++;

        prop.setProperty("appruncount", count + "");
        prop.store(new BufferedWriter(new FileWriter(file)), "");
    }

請問在我這段代碼裡,BufferedReader與BufferedWriter流不顯示的去關閉會占用內存嗎?由於匿名對象使用方便就這麼寫了,但是我又怕不關閉流占用內存。其實我想問的是程序會自動的幫我關閉這兩個流嗎?或者說匿名對象用完之後自動釋放不會占用內存呢?

最佳回答:


方法調用結束後,這兩個對象都會被銷毀的,它們的內存空間會被回收。
之所以需要關閉流資源,是為了釋放資源,因為io是操作系統的動作,例如如果沒有關閉,那麼這個IO資源就一直被java進程占用,知道java應用結束,這期間操作系統的其他進程就不能訪問該IO資源了。
如果你在java代碼中訪問某個記事本文件,此時你再直接打開該文件,可能就不能打開或者數據不是最新的信息。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved