原因:某个时间想对服务器上的zip中的某些文件进行修改
本来以为很简单的事情,在网上找了好些代码,结果效果都不是很理想。

实现对象:对各种类型的文件夹(包含子文件或子文件夹)

下面介绍一下自己综合网上代码自己写的

首先要倒入一个jar包:(零积分下载)

package com.tzx.test2;import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;  import org.apache.tools.zip.ZipOutputStream;  import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.Enumeration;  import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipFile;  /*** 压缩解压zip文件* @author STVEN_KING* @date: 2015年4月1日 下午4:09:11* */
public class ZipUtil {  /*** 压缩文件夹* @param filesDirth  目标文件  E:/a/b* @param zipFilePath  存放压缩文件的路径名 E:/a/b.zip* @param deleteFile 是否删除文件夹及目录* @return boolean  是否压缩成功* */public static boolean doZip(String filesDirPath, String zipFilePath,boolean deleteFile) {  return doZip(new File(filesDirPath), zipFilePath,deleteFile);  }  private static boolean doZip(File inputFile, String zipFileName,boolean deleteFile) {  ZipOutputStream out = null;  try {  out = new ZipOutputStream(new FileOutputStream(zipFileName));  boolean result = doZip(out, inputFile, "");return result;  } catch (FileNotFoundException ex) {  ex.printStackTrace();  return false;  } catch (IOException ex) {  ex.printStackTrace();  return false;  } finally {  try {  out.close();  if (deleteFile) {deleteDir(inputFile);}} catch (IOException ex) {  ex.printStackTrace();  return false;  }  }  }  private static boolean doZip(ZipOutputStream out, File f, String base) {  try {  if (f.isDirectory()) {  File[] fl = f.listFiles();  if (fl.length == 0) {out.putNextEntry(new org.apache.tools.zip.ZipEntry(base + "/"));}for (int i = 0; i < fl.length; i++) {  doZip(out, fl[i], base + "/" + fl[i].getName());  }  } else {  out.putNextEntry(new org.apache.tools.zip.ZipEntry(base));  FileInputStream in = new FileInputStream(f);  int b;  while ((b = in.read()) != -1) {  out.write(b);  }  in.close();  }  return true;  } catch (IOException ex) {  ex.printStackTrace();  return false;  }  }  /*** 解压zip文件* @param zipFilePath  压缩文件路径名  E:/b/a.zip* @param base  解压文件存放路径  E:/b/c* @param deleteFile 是否删除压缩包* @return boolean 是否解压成功* */public static boolean unZip(String zipFilePath, String base, boolean deleteFile) {  try {  File file = new File(zipFilePath);  if (!file.exists()) {  throw new RuntimeException("解压文件不存在!");  }  ZipFile zipFile = new ZipFile(file);  Enumeration e = zipFile.getEntries();  while (e.hasMoreElements()) {  ZipEntry zipEntry = (ZipEntry) e.nextElement();  if (zipEntry.isDirectory()) {  String name = zipEntry.getName();  name = name.substring(0, name.length() - 1);  File f = new File(base+ "/" + name);  f.mkdirs();  } else {  File f = new File(base + zipEntry.getName());  f.getParentFile().mkdirs();  f.createNewFile();  InputStream is = zipFile.getInputStream(zipEntry);  FileOutputStream fos = new FileOutputStream(f);  int length = 0;  byte[] b = new byte[1024];  while ((length = is.read(b, 0, 1024)) != -1) {  fos.write(b, 0, length);  }  is.close();  fos.close();  }  }  if (zipFile != null) {  zipFile.close();  }  if (deleteFile) {  file.deleteOnExit();}  return true;  } catch (IOException ex) {  return false;  }  }/*** 递归删除目录下的所有文件及子目录下所有文件* @param dir 将要删除的文件目录* @return boolean */private static boolean deleteDir(File dir) {if (dir.isDirectory()) {String[] children = dir.list();//递归删除目录中的子目录下for (int i=0; i<children.length; i++) {boolean success = deleteDir(new File(dir, children[i]));if (!success) {return false;}}}// 目录此时为空,可以删除return dir.delete();}
}  

实现Java代码压缩解压相关推荐

  1. java代码实现解压文件_Java压缩/解压文件的实现代码

    用java压缩/解压文件: import java.io.*; import java.awt.*; import java.awt.event.*; import java.util.*; impo ...

  2. Java代码实现解压文件包和压缩文件的工具类

    最近开发任务比较多,这两天陆陆续续整理了一点资料上传一下,这个是前段时间用到的解压和压缩文件的工具类,网上找了一些,自己补充一下,现在先分享一下,希望对各位同学有所帮助! package com.as ...

  3. Java 字符串压缩/解压【开发记录】

    1.场景:由于数据库字段长度有限,并且不能随意的修改数据库字段的配置,数据库的某个字段设置的长度可能在设置初期是满足需求的,后期由于业务变更或业务量增大导致该字段存储的数据增长,落库时可能因为该字段数 ...

  4. java 文件压缩 解压_Java文件压缩与解压缩(一)

    package com.cn; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream ...

  5. java gzip 压缩解压工具类

    因为觉得简单,本想抱着百度直接拿过来用的心态,结果发现网上的代码都转载自同一份,且埋了一个坑,你不仔细去梳理,很难发现. mark下需要注意的两点: 1. 编码/解码,压缩/解压缩是成对出现的 编码: ...

  6. java zip压缩解压_JAVA实现实用的ZIP压缩与解压

    程序实现了ZIP压缩.共分为2部分 : 压缩(compression)与解压(decompression) 大致功能包括用了多态,递归等JAVA核心技术,可以对单个文件和任意级联文件夹进行压缩和解压. ...

  7. java如何压缩解压图片_Java实现压缩文件与解压缩文件

    由于工作需要,需要将zip的压缩文件进行解压,经过调查发现,存在两个开源的工具包,一个是Apache的ant工具包,另一个就是Java api自带的工具包:但是Java自带的工具包存在问题:如果压缩或 ...

  8. Java 字符串 压缩 解压

    实现字符串的压缩和解压功能 需要导入的jar import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; im ...

  9. 通过C#代码 压缩/解压文件

    通过引用一DLL(ICSharpCode.dll)可以实现所述功能... 一.压缩文件 using System; using ICSharpCode.SharpZipLib; using ICSha ...

最新文章

  1. 打开逗游服务器显示无法连接,轮回诀无法连接服务器 进不去解决方法
  2. GhostNet : 轻量级网络模型,性能超越MobileNetV3(CVRP2020, 华为诺亚)
  3. EST:李芳柏团队揭示微生物介导的砷氧化耦合硝酸还原
  4. IBM人工智能将“掌舵”全球首个跨大西洋自主驾驶船舶
  5. dede修改mysql,Dedecms(织梦)程序MySQL修复表和文章路径修改方法
  6. Apache Spark技术实战之6 -- spark-submit常见问题及其解决
  7. php 视图层smarty,4. 视图引擎 View Engine - Smarty
  8. 关于方程a^x=1(mod m)的最小x解
  9. python安装地是什么_如何安装python
  10. IndentationError: expected an indented block --python报错 or IndentationError:unexpected indent
  11. 头歌(educoder)实训作业题目及答案分享 ——1-1 Java入门 - Java入门基础
  12. c51单片机小车c语言,用51单片机编写的智能小车全程前进的C程序
  13. 7-15 新浪微博热门话题
  14. 利用Java模拟石头剪刀布游戏
  15. SQL语句group by 的求和sum
  16. 百词斩秋招java,成都百词斩2018web前端秋招笔试题
  17. [审核]审核被拒(陌生社交应用)
  18. 单细胞分析:质控实操(五)
  19. Kubernetes之健康检查与服务依赖处理
  20. 详细讲解go web框架之gin框架源码解析记录及思路流程和理解

热门文章

  1. 数字资产推广面临的问题
  2. 万能码的码上付来袭(安全扫码专业委员会)
  3. python爬取淘宝数据魔方_淘宝数据魔方技术架构解析阅读心得
  4. html5摄像头拍照保存图片,[转载]HTML5在线摄像头拍照上传并保存到服务器的应用...
  5. js强制进行QQ对话
  6. 创业?你,准备好了吗?
  7. 如何从用户态进入内核态
  8. python爬取全名k歌
  9. PC、单片机、DSP、FPGA、ARM资源对比
  10. 抖音上很火的3D立体动态相册代码制作教程