java删除压缩文件_java 解压 zip 包并删除

本文描述了在Java中解压并删除zip文件时遇到的问题,即解压后无法删除zip包,原因是资源占用。通过分析和尝试,作者发现问题在于没有正确关闭ZipFile对象,导致资源释放不完全。在关闭ZipFile对象后,问题得到解决。文章提供了相应的Java代码示例,包括PhotoTaskService和ZipUtil两个类,用于解压和删除zip文件。
摘要由CSDN通过智能技术生成

需求是这样的,  在服务器上有 运营上传的zip 包,内容是用户的照片,我需要做的是 获取这些照片上传,并保存到 数据库。 这里面的 上传照片,保存数据库都不难,主要问题是解压zip包,和删除zip 包,以及 解压后的文件。

之前在网上找的解压的文件的代码,都存在同一个问题,就是解压之后,无法删除 zip 包。查百度说是 资源占用,可是我已经把所有的流都关闭了哇。

我把解压和删除分成两部分用 jUnit  测试:   第一次测试解压,并不删除包;第二次只删除包。我发现,解压方法和删除方法在同一个test 里面测试的话,zip 包删不掉,要是单独一个test 测试删除方法的话,zip 包是可以删除的。总结一下,在同一个线程里面 解压之后包删不掉。这肯定是资源在占用中。

我在代码里面加了个垃圾回收(System.gc();),依然不行...

我仍然不放弃,还是在 百度上找代码,看看别人有没有遇到这样的问题,我看了好多,也测试了好多代码,发现博客好多都是复制的,或许是其他人看了这个博客解决了问题,然后自己 不想总结,于是乎,就把 这个博客 复制到自己的 博客里,这虽然省事了,但毕竟不是自己的原创 ,我是一个支持原创的人。(虽然我可能也有复制过,但是我没有发布哇)。看了这么多  依然不行。突然我的扣扣亮了一下,老大发来一张图片。

d4f1b14a4a066faa89feb704d0eeef7a.png

果然精辟呀,加上去之后E盘的文件真的消失了。。

困扰了我一上午的问题就这样解决了,真是应了我的那句话,"越是看上去很难奇怪的问题,越是最简单的问题."  "奇怪的问题",只是一个概念,只是存在我心里面的,所以这句话也只能是我跟我自己说。

不说了,看代码吧.一共有两个类   PhotoTaskService.java 和  ZipUtil.java

package com.hupu.smart.user.service.photoTask;

import com.hupu.smart.user.domain.UserPhoto;

import com.hupu.smart.user.interfaces.UserPhotoService;

import com.hupu.smart.user.service.util.UploadImageUtil;

import com.hupu.smart.user.service.util.ZipUtil;

import org.slf4j.Logger;

import org.spr

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值