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

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

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

java刪除文件時總是返回false,刪不掉

今天寫了個簡單的文件刪除的程序:代碼如下:

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)常性的刪不了,不知道怎么回事,我單獨測試的時候是可以的,感覺很是奇怪,上網(wǎng)查,人家說是可能的情況有:

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

我的解決

分析下我的情況,我的是單線程的,所以第一種情況不存在,第二種情況我關(guān)閉我所有打開的文件流但是還是不行,后來我在程序中加了行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文件刪除不了的坑,特別是壓縮文件

我們在用java刪除文件的時候通常直接調(diào)用file.delete();方法就行了,但是很多情況下卻刪除不了

下面列舉一些情況

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

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

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

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

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

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

    XML操作類庫XStream使用詳解

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

    如何開啟控制臺輸出mybatis執(zhí)行的sql日志問題

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

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

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

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

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

最新評論