服务器上zip 解压
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 解压相关推荐
- linux上怎么解压zip文件和tar.gz文件
解压zip文件的方法 使用命令: unzip xxx.zip 解压tar.gz文件的方法 使用命令: tar -zxvf xxx.tar.gz
- 惊爆:当Python代码遇到zip解压炸弹,未做防护的你后悔莫及!
zip解压炸弹 在文章的开头,让我们先来介绍一下zip解压炸弹是个 什么妖怪! 解压炸弹是指解压缩后能够产生巨大的数据量的可疑压缩文件!默认设置是文件扫描中产生500MB以上解压数据的是"解 ...
- 解压zip_go|用Go写一个zip解压脚本
用服务器自带的unzip命令解压zip包时,经常遇到编码问题,所以用Go写一个zip解压脚本来处理zip包 代码如下: package mainimport ("archive/zip&qu ...
- windows 7下如何卸载重装mysql 压缩包版百度经验_windows下安装、卸载mysql服务的方法(mysql 5.6 zip解压...
MySQL是一个小巧玲珑但功能强大的数据库,目前十分流行.但是官网给出的安装包有两种格式,一个是msi格式,一个是zip格式的.很多人下了zip格式的解压发现没有setup.exe,面对一堆文件一头雾 ...
- .xz是什么文件怎么解压_zip解压app下载-zip解压app安卓版下载v11.5.6
zip解压APP为用户提供了完全免费的文件解压缩功能服务,超高效的压缩和解压,支持将文档.图片.PDF和图片等多种文件夹进行压缩,压缩和解压的过程稳定高效,不会 影响文件打开也不会有乱码出现.还可以解 ...
- 怎么在数据库服务器解压文件,数据库服务器9怎么解压
数据库服务器9怎么解压 内容精选 换一换 Joomla是一套全球知名的内容管理系统,即Joomla CMS(Content Management System).Joomla是使用PHP语言加上Mys ...
- Java zip解压,并遍历zip中的配置文件 .cfg或.properties
1.解析cfg或properties配置文件 讲配置文件,读取,并封装成为map类型数据 /*** 解析cfg文件** @param cfgFile* @return*/public static M ...
- 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 ...
- java zip解压 中文_java解压ZIP 解决中文乱码 (GBK和UTF-8)
java解压ZIP 解决中文乱码 (GBK和UTF-8) 工具使用 : zip4j GitHub : zip4j 版本 : 2.2.8 Maven : net.lingala.zip4j zip4j ...
最新文章
- asp页面和Asp.net页面传中文参数UrlEncode编码以及接收解码
- 淮海工学院linux实验报告三,作业三 实验报告
- [云炬创业基础笔记]第五章创业机会评估测试9
- 【iCore1S 双核心板_ARM】例程十六:USB_MSC实验——虚拟U盘
- 提高C#编程水平的50个技巧
- SpringBoot开发案例之CountDownLatch多任务并行处理
- 转载------------java equals 方法
- 【牛客 - 302哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(低年级)】 小乐乐算数字(水题,快速幂,lowbit)
- 准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure(对于二分类问题)
- 关于Docker镜像再封装的详细文档
- GPS原始信号数据解析
- 学习Linux Bridge与利用Bridge创建虚拟网络
- 用Unity做一个小Demo入门Unity
- Linux修改系统时间为东八区北京时间(上海时间)
- [3] Jenkins 系列:如何获取触发Jenkins Job的用户信息?
- 注册德国商标的好处是什么
- 睡到自然醒的7个关键
- 使用.reg文件操作注册编辑表
- matlab之rectangle讲解
- Elasticsearch数据可视化,Dejavu+Doucker安装