亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java刪除文件時(shí)總是返回false,刪不掉的解決方案

 更新時(shí)間:2021年09月09日 16:38:40   作者:fangguozi  
這篇文章主要介紹了java刪除文件時(shí)總是返回false,刪不掉的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

java刪除文件時(shí)總是返回false,刪不掉

今天寫(xiě)了個(gè)簡(jiǎn)單的文件刪除的程序:代碼如下:

public static boolean deleteFiles(File[] files){
  boolean flag = false;
  for(File file:files){
   // 路徑為文件且不為空則進(jìn)行刪除  
      if (file.isFile() && file.exists()) { 
       flag = file.delete();
        System.out.println(flag);
      }
  }
  return flag;
 }

我的文件都是存在的,但是就是經(jīng)常性的刪不了,不知道怎么回事,我單獨(dú)測(cè)試的時(shí)候是可以的,感覺(jué)很是奇怪,上網(wǎng)查,人家說(shuō)是可能的情況有:

  • 1、多線(xiàn)程操作
  • 2、打開(kāi)的文件流沒(méi)有關(guān)閉
  • 3、需要垃圾回收下

我的解決

分析下我的情況,我的是單線(xiàn)程的,所以第一種情況不存在,第二種情況我關(guān)閉我所有打開(kāi)的文件流但是還是不行,后來(lái)我在程序中加了行System.gc();,結(jié)果就真的可以了,一下是修改后的:

public static boolean deleteFiles(File[] files){
  boolean flag = false;
  for(File file:files){
   // 路徑為文件且不為空則進(jìn)行刪除  
      if (file.isFile() && file.exists()) {  
       System.gc(); //加上確保文件能刪除,不然可能刪不掉
       flag = file.delete();
       System.out.println(flag);
      }
  }
  return flag;
 }

java文件刪除不了的坑,特別是壓縮文件

我們?cè)谟胘ava刪除文件的時(shí)候通常直接調(diào)用file.delete();方法就行了,但是很多情況下卻刪除不了

下面列舉一些情況

  • 1、是文件夾且不為空,這個(gè)沒(méi)什么好說(shuō)的,可以先刪除文件夾里的文件再刪除這個(gè)文件夾
  • 2、被別的進(jìn)程占用,這不僅java不能刪,就算windows手動(dòng)刪也刪不了
  • 3、跟這個(gè)文件的流沒(méi)有關(guān)閉,這個(gè)是最常見(jiàn)的原因了

然而我遇到的是上傳一個(gè)文件,然后跟這個(gè)文件有關(guān)的流也關(guān)閉了,還是刪除不了,后來(lái)發(fā)現(xiàn)有人把這個(gè)文件偷偷的轉(zhuǎn)換成zip壓縮文件了。

然后刪除這個(gè)bookFile死活刪除不了,如果出現(xiàn)這種情況,這個(gè)zipFile最后一定要close;

java.util.zip.ZipFile.close()方法關(guān)閉ZIP文件

關(guān)閉此ZIP文件將關(guān)閉以前由調(diào)用getInputStream()方法返回的所有輸入流。這個(gè)方法連流都給我們關(guān)閉了!就不用我們手動(dòng)關(guān)閉zip文件的流了,最后在調(diào)用file.delete()方法就可以刪除文件了

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

相關(guān)文章

  • springboot 中異步任務(wù),定時(shí)任務(wù),郵件任務(wù)詳解

    springboot 中異步任務(wù),定時(shí)任務(wù),郵件任務(wù)詳解

    這篇文章主要介紹了springboot 與異步任務(wù),定時(shí)任務(wù),郵件任務(wù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • 關(guān)于Java中finalize析構(gòu)方法的作用詳解

    關(guān)于Java中finalize析構(gòu)方法的作用詳解

    構(gòu)造方法用于創(chuàng)建和初始化類(lèi)對(duì)象,也就是說(shuō),構(gòu)造方法負(fù)責(zé)”生出“一個(gè)類(lèi)對(duì)象,并可以在對(duì)象出生時(shí)進(jìn)行必要的操作,在這篇文章中會(huì)給大家簡(jiǎn)單介紹一下析構(gòu)方法,需要的朋友可以參考下
    2023-05-05
  • Spring Cloud Gateway 內(nèi)存溢出的解決方案

    Spring Cloud Gateway 內(nèi)存溢出的解決方案

    這篇文章主要介紹了Spring Cloud Gateway 內(nèi)存溢出的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Maven中exec插件執(zhí)行Java程序的實(shí)現(xiàn)

    Maven中exec插件執(zhí)行Java程序的實(shí)現(xiàn)

    在Maven項(xiàng)目中,可以使用Maven的插件來(lái)執(zhí)行Java程序,本文主要介紹了Maven中exec插件執(zhí)行Java程序的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • java中創(chuàng)建兩表之間的觸發(fā)器詳解

    java中創(chuàng)建兩表之間的觸發(fā)器詳解

    這篇文章主要介紹了java中創(chuàng)建兩表之間的觸發(fā)器詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-06-06
  • Java導(dǎo)入新項(xiàng)目報(bào)錯(cuò)java:JDK?isn‘t?specified?for?module解決辦法

    Java導(dǎo)入新項(xiàng)目報(bào)錯(cuò)java:JDK?isn‘t?specified?for?module解決辦法

    這篇文章主要給大家介紹了關(guān)于Java導(dǎo)入新項(xiàng)目報(bào)錯(cuò)java:JDK?isn‘t?specified?for?module的解決辦法,當(dāng)您在導(dǎo)入Java項(xiàng)目時(shí)遇到錯(cuò)誤時(shí),可以嘗試以下面的方法來(lái)處理,需要的朋友可以參考下
    2024-05-05
  • XML操作類(lèi)庫(kù)XStream使用詳解

    XML操作類(lèi)庫(kù)XStream使用詳解

    這篇文章主要給大家介紹了關(guān)于XML操作類(lèi)庫(kù)XStream使用的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • 如何開(kāi)啟控制臺(tái)輸出mybatis執(zhí)行的sql日志問(wèn)題

    如何開(kāi)啟控制臺(tái)輸出mybatis執(zhí)行的sql日志問(wèn)題

    這篇文章主要介紹了如何開(kāi)啟控制臺(tái)輸出mybatis執(zhí)行的sql日志問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 詳解Java 10 var關(guān)鍵字和示例教程

    詳解Java 10 var關(guān)鍵字和示例教程

    在本文中,我將通過(guò)示例介紹新的Java SE 10特性——“var”類(lèi)型。你將學(xué)習(xí)如何在代碼中正確使用它,以及在什么情況下不能使用它,需要的朋友可以參考下
    2018-10-10
  • SpringBoot中Zookeeper分布式鎖的原理和用法詳解

    SpringBoot中Zookeeper分布式鎖的原理和用法詳解

    Zookeeper是一個(gè)分布式協(xié)調(diào)服務(wù),它提供了高可用、高性能、可擴(kuò)展的分布式鎖機(jī)制,SpringBoot是一個(gè)基于Spring框架的開(kāi)發(fā)框架,它提供了對(duì)Zookeeper分布式鎖的集成支持,本文將介紹SpringBoot中的 Zookeeper分布式鎖的原理和使用方法,需要的朋友可以參考下
    2023-07-07

最新評(píng)論