java写入zip文件后无法进行删除的问题及解决

 更新时间:2024年06月15日 08:42:49   作者:朴实无华欣哥哥  
这篇文章主要介绍了java写入zip文件后无法进行删除的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

java写入zip文件后无法进行删除

今天做一个上传zip进行解压写入服务器,发现写入后无法对上传的ZIP进行删除,即使手动删除也不可以。总是提示被java 的jvm占用。

首先怀疑的是某个流没有关闭,但是仔细检查还是什么都关闭了,顺序也是正确的。

后来想想既然jvm占用可不可以提示一下让他回收内存呢。

加入 System.gc(); 方法后果然 zip文件可以删除了,完美解决。

java文件删除不了的坑,特别是压缩文件

我们在用java删除文件的时候通常直接调用file.delete();方法就行了,但是很多情况下却删除不了,

下面列举一些情况

  • 1.是文件夹且不为空,这个没什么好说的,可以先删除文件夹里的文件再删除这个文件夹;
  • 2.被别的进程占用,这不仅java不能删,就算windows手动删也删不了;
  • 3.跟这个文件的流没有关闭,这个是最常见的原因了

然而我遇到的是上传一个文件,然后跟这个文件有关的流也关闭了,还是删除不了,后来发现有人把这个文件偷偷的转换成zip压缩文件了。

然后删除这个bookFile死活删除不了,如果出现这种情况,这个zipFile最后一定要close;

java.util.zip.ZipFile.close()方法关闭ZIP文件。

关闭此ZIP文件将关闭以前由调用getInputStream()方法返回的所有输入流。

这个方法连流都给我们关闭了!

就不用我们手动关闭zip文件的流了,最后在调用file.delete()方法就可以删除文件了

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Spring实现加法计算器和用户登录功能

    Spring实现加法计算器和用户登录功能

    在前后端分离的Web开发模式中,接口(API)扮演着至关重要的角色,它是前后端交互的桥梁,创建加法计算器和用户登录功能时,介绍了接口测试和问题解决的一般流程,如使用Postman测试接口、查看日志、处理缓存问题等,确保开发过程中的高效协作和问题快速定位
    2024-10-10
  • Java迭代器遍历list的方法及代码分析

    Java迭代器遍历list的方法及代码分析

    在本篇内容里系小编给大家分享的是一篇关于Java迭代器遍历list的方法总结内容,有需要的朋友们可以参考学习下。
    2022-11-11
  • Java-Java5.0注解全面解读

    Java-Java5.0注解全面解读

    这篇文章主要介绍了Java-Java5.0注解全面解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • java实现拼图游戏

    java实现拼图游戏

    这篇文章主要为大家详细介绍了java实现拼图游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • Java实现byte[]转List的示例代码

    Java实现byte[]转List的示例代码

    byte,即字节,由8位的二进制组成。在Java中,byte类型的数据是8位带符号的二进制数。List 是一个接口,它继承于Collection的接口。它代表着有序的队列。本文将介绍如何通过java实现byte[]转List,需要的可以参考一下
    2022-01-01
  • Java数据结构之堆(优先队列)的实现

    Java数据结构之堆(优先队列)的实现

    堆(优先队列)是一种典型的数据结构,其形状是一棵完全二叉树,一般用于求解topk问题。本文将利用Java语言实现堆,感兴趣的可以学习一下
    2022-05-05
  • 详解Mybatis拦截器安全加解密MySQL数据实战

    详解Mybatis拦截器安全加解密MySQL数据实战

    本文主要介绍了Mybatis拦截器安全加解密MySQL数据实战,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • SpringMVC MVC架构原理及实现方法详解

    SpringMVC MVC架构原理及实现方法详解

    这篇文章主要介绍了SpringMVC MVC架构原理及实现方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • System 类 和 Runtime 类的常用用法介绍

    System 类 和 Runtime 类的常用用法介绍

    这篇文章主要介绍了System 类 和 Runtime 类的常用用法,有需要的朋友可以参考一下
    2014-01-01
  • Java集合教程之Collection实例详解

    Java集合教程之Collection实例详解

    集合,或者叫容器,是一个包含多个元素的对象,下面这篇文章主要给大家介绍了关于Java集合教程之Collection的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-08-08

最新评论