欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java如何強(qiáng)制刪除java程序占用的文件

 更新時(shí)間:2024年06月14日 09:58:10   作者:普通網(wǎng)友  
這篇文章主要介紹了java如何強(qiáng)制刪除java程序占用的文件問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

java強(qiáng)制刪除java程序占用的文件

在JAVA對文件的讀寫操作中,操作完以后將輸入流和輸出流及時(shí)關(guān)閉時(shí)很必要的。

假如我們有時(shí)候忘記關(guān)閉了,又不知道在哪個(gè)地方去關(guān)閉,為了刪除該文件,JAVA可以進(jìn)行強(qiáng)制刪除操作。

可以使用如下代碼進(jìn)行強(qiáng)制刪除:

public boolean forceDelete(File file){
        boolean result=file.delete();
        if (!result) {
            System.gc();    //回收資源
            file.delete();
        }
        return result;
    }

如果一次強(qiáng)制回收不成功,那就搞個(gè)循環(huán),多來幾次,如下代碼:

public boolean forceDelete(File file) {
        boolean result = file.delete();
        int tryCount = 0;
        while (!result && tryCount++ < 10) {
            System.gc();    //回收資源
            result = file.delete();
        }
        return result;
    }

雖然System.gc()可以這樣強(qiáng)制解除對文件的占用,但是也不是萬能的,因?yàn)椋?/p>

  • ① 及時(shí)關(guān)閉輸入流、輸出流是很有必要的
  • ② System.gc()也不是一定能夠回收垃圾的,能否成功回收取決于JVM的回收機(jī)制,外部人員是無法掌控的。就像我們?nèi)コ燥埖葧r(shí)間長了催單,我們只是向餐館提交了我們的申請,能不能快點(diǎn)上菜依然取決于廚師
  • ③ 即使不用System.gc()進(jìn)行強(qiáng)制回收,JVM的回收機(jī)制也會在一段時(shí)間后對資源進(jìn)行回收
  • ④ 這種方法也只對被java程序占用的文件有用,對于被其他進(jìn)行占用的文件就無能為力了

java強(qiáng)行刪除文件(針對進(jìn)程正在使用的文件的刪除)

操作無法完成 因?yàn)槲募言?Java(TM) Platform SE binary 中打開。

出現(xiàn)該問題的原因是創(chuàng)建的IO流沒有正常的關(guān)閉,導(dǎo)致資源文件一直被占用!

只要為創(chuàng)建的每一個(gè)IO流加上close方法就能正常使用,而且謹(jǐn)記:先創(chuàng)建的流最后關(guān)閉,且創(chuàng)建關(guān)閉一一對應(yīng)。  

刪除被進(jìn)程占用的文件,可以先判斷文件是否被刪除,如果沒有,則讓系統(tǒng)強(qiáng)制回收資源,進(jìn)行文件的刪除

示例如下:

boolean result = f.delete();
  if(!result)
   {
    System.gc();
    f.delete;
   }

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot項(xiàng)目中使用@Scheduled讀取動態(tài)參數(shù)

    SpringBoot項(xiàng)目中使用@Scheduled讀取動態(tài)參數(shù)

    這篇文章主要介紹了SpringBoot項(xiàng)目中使用@Scheduled讀取動態(tài)參數(shù),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • SpringBoot Controller中的常用注解

    SpringBoot Controller中的常用注解

    這篇文章主要介紹了SpringBoot Controller中的常用注解,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • 詳解Java編程中super關(guān)鍵字的用法

    詳解Java編程中super關(guān)鍵字的用法

    這篇文章主要介紹了Java編程中this與super關(guān)鍵字的用法,包括從內(nèi)存結(jié)構(gòu)方面分析super的作用域,需要的朋友可以參考下
    2015-10-10
  • 關(guān)于Spring?Cache?緩存攔截器(?CacheInterceptor)

    關(guān)于Spring?Cache?緩存攔截器(?CacheInterceptor)

    這篇文章主要介紹了關(guān)于Spring?Cache緩存攔截器(?CacheInterceptor),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • SpringBoot下如何實(shí)現(xiàn)支付寶接口的使用

    SpringBoot下如何實(shí)現(xiàn)支付寶接口的使用

    這篇文章主要介紹了SpringBoot下如何實(shí)現(xiàn)支付寶接口的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • java網(wǎng)絡(luò)編程之識別示例 獲取主機(jī)網(wǎng)絡(luò)接口列表

    java網(wǎng)絡(luò)編程之識別示例 獲取主機(jī)網(wǎng)絡(luò)接口列表

    一個(gè)客戶端想要發(fā)起一次通信,先決條件就是需要知道運(yùn)行著服務(wù)器端程序的主機(jī)的IP地址是多少。然后我們才能夠通過這個(gè)地址向服務(wù)器發(fā)送信息。
    2014-01-01
  • Jackson自定義序列化反序列化注解加解密字段詳解

    Jackson自定義序列化反序列化注解加解密字段詳解

    這篇文章主要介紹了Jackson自定義序列化反序列化注解加解密字段詳解,一些場景中,數(shù)據(jù)庫字段用于存儲json格式數(shù)據(jù),處于安全的考慮,該json數(shù)據(jù)中,某些敏感信息字段需要做加密存儲,例如身份證號、手機(jī)號等,需要的朋友可以參考下
    2023-11-11
  • Java WeakHashMap案例詳解

    Java WeakHashMap案例詳解

    這篇文章主要介紹了Java WeakHashMap案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Activiti7整合Springboot使用記錄

    Activiti7整合Springboot使用記錄

    這篇文章主要介紹了Activiti7+Springboot使用整合記錄,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • MybatisPlus如何自定義TypeHandler映射JSON類型為List

    MybatisPlus如何自定義TypeHandler映射JSON類型為List

    這篇文章主要介紹了MybatisPlus如何自定義TypeHandler映射JSON類型為List,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01

最新評論