本文只针对压缩文件夹(不用于压缩文件,若需要,自行更改)

public class ZipTool {File f0; //被压缩的目标File f1;    //压缩后的目录及文件名public ZipTool(File f0, File f1) {this.f0 = f0;this.f1 = f1;start();}public void start() {try (ZipOutputStream out = new ZipOutputStream(new FileOutputStream(f1))) {File[] flist = f0.listFiles();//对输入目录进行查看for (File o : flist) {writeFile(o, out);}} catch (IOException e) {e.printStackTrace();}}public void writeFile(File f, ZipOutputStream out) {try {if (judgeFile(f)) {File[] flists = f.listFiles();//判断输入的文件夹是否有文件if (flists.length == 0) {String s = f.toString().substring(3);out.putNextEntry(new ZipEntry(s + " " + "/"));//空文件仅仅创建文件夹} else {//非空文件则遍历后创建文件for (File oo : flists) {writeFile(oo, out); //递归方法}}} else {InputStream in = new BufferedInputStream(new FileInputStream(f));int len;byte[] b = new byte[8192];String s = f.toString().substring(3);out.putNextEntry(new ZipEntry(s));while ((len = in.read(b)) != -1) {out.write(b, 0, len);}in.close();}} catch (IOException e) {e.printStackTrace();}}//写文件public boolean judgeFile(File f) {if (f.isDirectory()) {return true;//是文件夹就返回} else {return false;//不是就不返回}}//对文件夹处理
}

已知BUG:对于空文件夹的压缩,压缩后名字与原文件夹不相符

原因:因不知某因无法直接压缩空文件夹,故给空文件明加了个空字符串

流程:放目录→判断是否为文件夹→是→判断是否为文件夹→是 创建空文件夹

⬇否                                 否⬇

直接创建对应文件           递归到最开始

Java 压缩文件夹相关推荐

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

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

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

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

  3. java压缩文件夹(含有空文件夹)

    两种实现方式: java.util.zip.ZipOutputStream org.apache.tools.ant 注意 最初采用java.util.zip.ZipOutputStream的方式, ...

  4. linux下 java 压缩文件夹,java压缩文件夹linux下乱码问题

    前几天写了文章介绍java文件夹的压缩(见 http://zwllxs.iteye.com/blog/836483),但是发现一个问题,在linux下,如果文件夹内的文件是中文名,那么压缩后,这些文件 ...

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

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

  6. java压缩文件夹并加密

    工作遇到,记录下 import net.lingala.zip4j.core.ZipFile; import net.lingala.zip4j.exception.ZipException; imp ...

  7. java快速压缩文件夹_如何使用java压缩文件夹本身

    它可以通过包java.util.Zip轻松解决,不需要任何额外的Jar文件 只需复制以下代码并使用IDE运行它 //Import all needed packages package general ...

  8. java 压缩文件tar_使用Java API进行tar.gz文件及文件夹压缩解压缩

    在java(JDK)中我们可以使用ZipOutputStream去创建zip压缩文件,(参考我之前写的文章 使用java API进行zip递归压缩文件夹以及解压 ),也可以使用GZIPOutputSt ...

  9. Java压缩文件和文件夹为zip格式

    工具类ZipUtils 如下: package utils;import java.io.File; import java.io.FileInputStream; import java.io.IO ...

  10. java压缩文件(夹)

    包含压缩文件或文件夹.压缩多个文件或文件夹.按数量分段压缩文件夹 使用带缓冲的输入流提高压缩速度 package com.client.util;import java.io.*; import ja ...

最新文章

  1. sourcetree和git同步分支
  2. ICLR2021 | 利用数据扩充提高蛋白质序列模型的通用性
  3. uva 707(记忆化搜索)
  4. vue循环渲染子组件视图不更新问题
  5. java激励_激励干个人java的不足之处
  6. 两个网站:借物网,rss交流网站opml.cn
  7. 【ZooKeeper Notes 6】客户端对zookeeper的操作是不可回退的 [OK]
  8. 算法:Path Sum(路径总和)
  9. Android ASM字节码插桩
  10. 扫描全能王?原来图像技术可以这样子玩
  11. @PropertySource 注解的使用
  12. codewars----Exes and Ohs
  13. 移动流量转赠给好友_中国移动怎样转赠手机流量?月结流量用不完怎办
  14. sql server 自定义背景、字体及显示行数
  15. 公众号小额打款验证_已经注册完的公众号如何进行小额打款验证。?
  16. 使用ffmpeg命令合成m4s音频和视频
  17. LS1021A 调试问题记录
  18. webview 上打开QQ客户端,QQ登入后自动打开添加QQ群的方法
  19. C# 将OFD转为PDF
  20. 黑客到底可以厉害到什么程度?

热门文章

  1. 什么叫pmt测试分析_DVT测试是什么意思?(smt术语详解)
  2. Arx常用代码《转》
  3. 送给python初学者在简单编程练习题中的小技巧
  4. 机房怎么制作服务器,电信服务器机房服务器搬迁地网制作方法
  5. sqlite3 error: database is locked
  6. 联通笔试真题(有答案)
  7. android版本单词熟记APP和单词APP
  8. 隐藏计算机关机键,关机快捷键有哪些?电脑Windows快捷关机最全方法图文详解
  9. 【运维工程师】运维工程师日常摘记
  10. 盛大进军语音识别领域:将开源哼唱搜索技术