ZipOutputStream流、递归压缩。

在关闭ZipOutputStream流之前,需要先调用flush()方法,强制将缓冲区所有的数据输出,以避免解压文件时出现压缩文件已损坏的现象。

/*** @param source    待压缩文件/文件夹路径* @param destination   压缩后压缩文件路径* @return*/
public static boolean toZip(String source, String destination) {try {FileOutputStream out = new FileOutputStream(destination);ZipOutputStream zipOutputStream = new ZipOutputStream(out);File sourceFile = new File(source);// 递归压缩文件夹compress(sourceFile, zipOutputStream, sourceFile.getName());zipOutputStream.flush();zipOutputStream.close();} catch (IOException e) {System.out.println("failed to zip compress, exception");return false;}return true;
}
private static void compress(File sourceFile, ZipOutputStream zos, String name) throws IOException {byte[] buf = new byte[1024];if(sourceFile.isFile()){// 压缩单个文件,压缩后文件名为当前文件名zos.putNextEntry(new ZipEntry(name));// copy文件到zip输出流中int len;FileInputStream in = new FileInputStream(sourceFile);while ((len = in.read(buf)) != -1){zos.write(buf, 0, len);}zos.closeEntry();in.close();} else {File[] listFiles = sourceFile.listFiles();if(listFiles == null || listFiles.length == 0){// 空文件夹的处理(创建一个空ZipEntry)zos.putNextEntry(new ZipEntry(name + "/"));zos.closeEntry();}else {// 递归压缩文件夹下的文件for (File file : listFiles) {compress(file, zos, name + "/" + file.getName());}}}
}

Java压缩文件/文件夹相关推荐

  1. java如何压缩html代码,java 压缩html文件

    java 压缩html文件 [2021-02-03 16:32:07]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/ ...

  2. java压缩zip文件夹错误_Java将文件或者文件夹压缩成zip(修复文件夹中存在多个文件报Stream Closed错误问题)...

    项目场景: Java将文件或者文件夹压缩成zip(修复文件夹中存在多个文件报Stream Closed错误问题) 问题描述: 最近的项目需要将多级文件夹压缩成zip,网上找了几个工具类,都会报错,所以 ...

  3. java压缩zip文件中文乱码问题

    --转自:http://riching.iteye.com/blog/579634 用java来打包文件生成压缩文件,有两个地方会出现乱码 1.内容的中文乱码问题,这个问题网上很多人给出了解决方法,两 ...

  4. Java 压缩20M文件从30秒到1秒的优化过程,真不相信?

    (源码下载方式在文末) 有一个需求需要将前端传过来的10张照片,然后后端进行处理以后压缩成一个压缩包通过网络流传输出去.之前没有接触过用Java压缩文件的,所以就直接上网找了一个例子改了一下用了,改完 ...

  5. Java压缩20M文件非常厉害

    有一个需求需要将前端传过来的10张照片,然后后端进行处理以后压缩成一个压缩包通过网络流传输出去.之前没有接触过用Java压缩文件的,所以就直接上网找了一个例子改了一下用了,改完以后也能使用,但是随着前 ...

  6. Java压缩效率优化思路

    昨天微信公众号上看到了一篇<Java压缩20M文件从30秒到1秒的优化过程>的文章,记录一下,最后作者的感悟,受教了. 可以关注一下 原文章链接我没找到(太懒了),加公众号自己去找吧. 不 ...

  7. Java实现将文件或者文件夹压缩成zip

    Java实现将文件或者文件夹压缩成zip 最近碰到个需要下载zip压缩包的需求,于是我在网上找了下别人写好的zip工具类.但找了好多篇博客,总是发现有bug.因此就自己来写了个工具类. 这个工具类的功 ...

  8. java 压缩文件夹_java 实现压缩文件(单文件 或 文件夹)

    接着上篇了解一下java压缩实现过程,下面的是支持 单文件 或 文件夹 压缩的实现,使用递归. 效果: 代码: package com.gx.compress; import java.io.Buff ...

  9. java zip文件夹_如何使用java压缩文件夹成为zip包

    展开全部 在JDK中有一个zip工具类:java.util.zip    Provides classes for reading and writing the standard ZIP and G ...

  10. 【转载】用java压缩文件夹/文件

    压缩文件夹代码: import java.io.File; import org.apache.tools.zip.ZipOutputStream; //这个包在ant.jar里,要到官方网下载 im ...

最新文章

  1. 代码规范性与品质问题~
  2. 什么样的技术人员更容易接到软件开发项目?(论干私活儿)
  3. CocoaPods was not found 解决
  4. IDEA快捷键及使用技巧
  5. c语言射击类小游戏任务书,(c语言课程设计报告小游戏“石头剪子布”.doc
  6. php 5.3 连接mysql_php5.3.x5.4.x5.5.x连接mysql数据库的三种方式以及所用驱动
  7. VS返回到上次编辑和进入到下次编辑的位置快捷键
  8. 第39天-进程 _1(2013.09.11)
  9. iBatis下使用like查询,以及需要注意的问题
  10. 『007』MySQL
  11. 基于STM32数码相册
  12. 腾讯云学生服务器分享
  13. 整理收纳的概念和意义
  14. C++-STL-组件(一)-容器05:stack(栈)
  15. 对main 未定义的引用_错误:ID返回1个退出状态(对“ main”的未定义引用)
  16. Ubuntu软件管理、换源、驱动及部分软件安装操作(持续更新)
  17. 南核目录2020pdf_最新版CSSCI来源期刊目录及增减变化!
  18. 模型auc指标_auc致命缺陷模型指标
  19. 2020应届毕业生,Android春招总结,已入职小米,进阶加薪全靠它
  20. 最小二乘法,正则推导

热门文章

  1. 网站优化关键词密度多少才是最合适的?
  2. 对潇潇暮雨洒江天,一番洗清秋。渐霜风凄紧,关河冷落,残照当楼。是处红衰翠减,苒苒物华休。唯有长江水,无语东流。不忍登高临远,望故乡渺邈,归思难收。叹年来踪迹,何事苦淹留?想佳人,妆楼颙望,误几回、天际
  3. 数据分析必备43个Excel函数
  4. 谈谈量化交易的一些“深坑”
  5. 共享换电:车企筑垒,宁王拆墙
  6. 四芯水晶头电话线的接法
  7. 网络计算机组显示不全,快速解答win7系统网络邻居显示不全只能看到2台计算机的法子...
  8. 蚂蚁金服自研架构 SOFA 背后的工程师|1024快乐
  9. rk3399 android 9.0 root 权限及测试应用
  10. oss 视频 转码_oss视频转码----比阿里云文档更详细