javazip压缩优化版解决压缩后文件一直被占用无法删除

javazip压缩优化版解决压缩后⽂件⼀直被占⽤⽆法删除
最近进⾏zip操作,从⽹上到⼀个处理⽅法,但是经过试验存在⼀些bug,主要是⽂件流的申明存在问题,导致jvm⼀直占⽤⽂件⽽不释放,特意把⾃⼰修改的发出来,已备记录
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
协作学习import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class Zippic {
public final static class FileToZip {
private FileToZip() {
}
/**
* 将存放在sourceFilePath⽬录下的源⽂件,打包成fileName名称的ZIP⽂件,并存放到zipFilePath。核糖核酸酶
* @param sourceFilePath 待压缩的⽂件路径
* @param zipFilePath 压缩后存放路径
* @param fileName 压缩后⽂件的名称
* @return flag
*/
public static boolean fileToZip(String sourceFilePath,String zipFilePath,String fileName) {
boolean flag = false;
File sourceFile = new File(sourceFilePath);数学学习与研究
2008欧洲杯主题曲
ists() == false) {
System.out.println(">>>>>> 待压缩的⽂件⽬录:" + sourceFilePath + " 不存在. <<<<<<");
flag = false;
return flag;server 2003
} else {
try {
File zipFile = new File(zipFilePath + "/" + fileName + ".zip");
ists()) {
System.out.println(">>>>>> " + zipFilePath + " ⽬录下存在名字为:" + fileName + ".zip" + " 打包⽂件. <<<<<<");
} else {
File[] sourceFiles = sourceFile.listFiles();
if(null == sourceFiles || sourceFiles.length < 1) {
System.out.println(">>>>>> 待压缩的⽂件⽬录:" + sourceFilePath + " ⾥⾯不存在⽂件,⽆需压缩. <<<<<<");
flag = false;
return flag;
} else {
ZipOutputStream zos = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(zipFile)));
                  //⽤到时才申明,否则容易出现问题,记得先开后关,后开先关
byte[] bufs = new byte[1024*10];              //缓冲块
for(int i=0;i<sourceFiles.length;i++) {
                  // 创建ZIP实体,并添加进压缩包
ZipEntry zipEntry = new ZipEntry(sourceFiles[i].getName());
zos.putNextEntry(zipEntry);
                // 读取待压缩的⽂件并写进压缩包⾥
重庆创模
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(sourceFiles[i]),1024*10);
                  //⽤到时才申明,否则容易出现问题,记得先开后关,后开先关
int read = 0;
while((read=(ad(bufs, 0, 1024*10))) != -1) {
zos.write(bufs, 0, read);
}
if(null != bis) bis.close();  //关闭
}
flag = true;
if(null != zos) zos.close();  //关闭
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
throw new RuntimeException(e);
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
return flag;        }
}
}

本文发布于:2024-09-22 10:23:48,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/158880.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:压缩   问题   发出   学习   存在   出现   实体
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议