1.编写 工具类 ZipUtil

package com.susoft.utils;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Enumeration;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;public class ZipUtils {private static final Logger logger = LoggerFactory.getLogger(ZipUtils.class);private ZipUtils(){// 私用构造主法.因为此类是工具类.}/*** 解压zip文件* * @param zipFileName*            待解压的zip文件路径,例如:c:\\a.zip* * @param outputDirectory*            解压目标文件夹,例如:c:\\a\*/public static void unZip(String zipFileName, String outputDirectory)throws Exception {logger.debug("开始解压 ["+zipFileName+"] 到 ["+outputDirectory+"]");org.apache.tools.zip.ZipFile zipFile = new org.apache.tools.zip.ZipFile(zipFileName);try {Enumeration<?> e = zipFile.getEntries();org.apache.tools.zip.ZipEntry zipEntry = null;createDirectory(outputDirectory, "");while (e.hasMoreElements()) {zipEntry = (org.apache.tools.zip.ZipEntry) e.nextElement();logger.debug("解压:" + zipEntry.getName());if (zipEntry.isDirectory()) {String name = zipEntry.getName();name = name.substring(0, name.length() - 1);File f = new File(outputDirectory + File.separator + name);f.mkdir();logger.debug("创建目录:" + outputDirectory + File.separator + name);} else {String fileName = zipEntry.getName();fileName = fileName.replace('\\', '/');if (fileName.indexOf("/") != -1) {createDirectory(outputDirectory, fileName.substring(0,fileName.lastIndexOf("/")));fileName = fileName.substring(fileName.lastIndexOf("/") + 1,fileName.length());}File f = new File(outputDirectory + File.separator+ zipEntry.getName());f.createNewFile();InputStream in = zipFile.getInputStream(zipEntry);FileOutputStream out = new FileOutputStream(f);byte[] by = new byte[1024];int c;while ((c = in.read(by)) != -1) {out.write(by, 0, c);}in.close();out.close();}}logger.debug("解压 ["+zipFileName+"] 完成!");} catch (Exception ex) {System.out.println(ex.getMessage());} finally {zipFile.close();}}/*** 创建目录* @author hezhao* @Time   2017年7月28日 下午7:10:05* @param directory* @param subDirectory*/private static void createDirectory(String directory, String subDirectory) {String dir[];File fl = new File(directory);try {if (subDirectory == "" && fl.exists() != true) {fl.mkdir();} else if (subDirectory != "") {dir = subDirectory.replace('\\', '/').split("/");for (int i = 0; i < dir.length; i++) {File subFile = new File(directory + File.separator + dir[i]);if (subFile.exists() == false)subFile.mkdir();directory += File.separator + dir[i];}}} catch (Exception ex) {System.out.println(ex.getMessage());}}  }

编写测试类

import org.junit.Test;public class BeanTest {@Testpublic void test() {ZipUtils  zp = new ZipUtils ();zo.unZip(xxx,yyy);}

转载于:https://www.cnblogs.com/gloria-liu/p/9444460.html

服务器上zip 解压相关推荐

  1. linux上怎么解压zip文件和tar.gz文件

    解压zip文件的方法 使用命令: unzip xxx.zip 解压tar.gz文件的方法 使用命令: tar -zxvf xxx.tar.gz

  2. 惊爆:当Python代码遇到zip解压炸弹,未做防护的你后悔莫及!

    zip解压炸弹 在文章的开头,让我们先来介绍一下zip解压炸弹是个 什么妖怪! 解压炸弹是指解压缩后能够产生巨大的数据量的可疑压缩文件!默认设置是文件扫描中产生500MB以上解压数据的是"解 ...

  3. 解压zip_go|用Go写一个zip解压脚本

    用服务器自带的unzip命令解压zip包时,经常遇到编码问题,所以用Go写一个zip解压脚本来处理zip包 代码如下: package mainimport ("archive/zip&qu ...

  4. windows 7下如何卸载重装mysql 压缩包版百度经验_windows下安装、卸载mysql服务的方法(mysql 5.6 zip解压...

    MySQL是一个小巧玲珑但功能强大的数据库,目前十分流行.但是官网给出的安装包有两种格式,一个是msi格式,一个是zip格式的.很多人下了zip格式的解压发现没有setup.exe,面对一堆文件一头雾 ...

  5. .xz是什么文件怎么解压_zip解压app下载-zip解压app安卓版下载v11.5.6

    zip解压APP为用户提供了完全免费的文件解压缩功能服务,超高效的压缩和解压,支持将文档.图片.PDF和图片等多种文件夹进行压缩,压缩和解压的过程稳定高效,不会 影响文件打开也不会有乱码出现.还可以解 ...

  6. 怎么在数据库服务器解压文件,数据库服务器9怎么解压

    数据库服务器9怎么解压 内容精选 换一换 Joomla是一套全球知名的内容管理系统,即Joomla CMS(Content Management System).Joomla是使用PHP语言加上Mys ...

  7. Java zip解压,并遍历zip中的配置文件 .cfg或.properties

    1.解析cfg或properties配置文件 讲配置文件,读取,并封装成为map类型数据 /*** 解析cfg文件** @param cfgFile* @return*/public static M ...

  8. mysql 5.6.13-winx64_MySQL-5.6.13 zip解压版的安装与配置教程

    本节内容: MySQL-5.6.13解压版(zip版)安装配置教程 一,下载MySQL 5.6.13 MySQL Community Server 5.6.13下载地址: http://dev.mys ...

  9. java zip解压 中文_java解压ZIP 解决中文乱码 (GBK和UTF-8)

    java解压ZIP 解决中文乱码 (GBK和UTF-8) 工具使用 : zip4j GitHub : zip4j 版本 : 2.2.8 Maven : net.lingala.zip4j zip4j ...

最新文章

  1. asp页面和Asp.net页面传中文参数UrlEncode编码以及接收解码
  2. 淮海工学院linux实验报告三,作业三 实验报告
  3. [云炬创业基础笔记]第五章创业机会评估测试9
  4. 【iCore1S 双核心板_ARM】例程十六:USB_MSC实验——虚拟U盘
  5. 提高C#编程水平的50个技巧
  6. SpringBoot开发案例之CountDownLatch多任务并行处理
  7. 转载------------java equals 方法
  8. 【牛客 - 302哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(低年级)】 小乐乐算数字(水题,快速幂,lowbit)
  9. 准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure(对于二分类问题)
  10. 关于Docker镜像再封装的详细文档
  11. GPS原始信号数据解析
  12. 学习Linux Bridge与利用Bridge创建虚拟网络
  13. 用Unity做一个小Demo入门Unity
  14. Linux修改系统时间为东八区北京时间(上海时间)
  15. [3] Jenkins 系列:如何获取触发Jenkins Job的用户信息?
  16. 注册德国商标的好处是什么
  17. 睡到自然醒的7个关键
  18. 使用.reg文件操作注册编辑表
  19. matlab之rectangle讲解
  20. Elasticsearch数据可视化,Dejavu+Doucker安装

热门文章

  1. CAD版本转换器怎么设置输出格式
  2. 关于快速测试API接口的一个新技能
  3. 卡尔曼滤波的5个公式及每个参数的含义
  4. 数据转换软件_数据转换
  5. 【解决】Linux  (centos7)扩容磁盘不显示扩容后的磁盘或者磁盘大小两种情况
  6. 电磁场与电磁波实验(MATLAB版)
  7. Linux6/Centos6 NFS详细配置
  8. java web ppt_javawebppt演讲
  9. 扫描电镜下的人体感官结构,超震撼
  10. 网络服务器不稳定怎么解决,iqoo网络不稳定怎么解决