java解压zip文件
package com.chuangqi.tools;import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipFile;import java.io.*;
import java.util.Enumeration;public class FileUnZipUtils {/*** 解压zip文件* @author xiyue* @param sourceFile,待解压的zip文件;* toFolder,解压后的存放路径* @throws Exception**/public static void zipToFile(String sourceFile, String toFolder) throws Exception {String toDisk = toFolder;// 接收解压后的存放路径ZipFile zfile = new ZipFile(sourceFile, "gbk");// 连接待解压文件 "utf-8"会乱码Enumeration zList = zfile.getEntries();// 得到zip包里的所有元素ZipEntry ze = null;byte[] buf = new byte[1024];while (zList.hasMoreElements()) {ze = (ZipEntry) zList.nextElement();if (ze.isDirectory()) {// log.info("打开zip文件里的文件夹:"+ ze.getName() +"skipped...");File f = new File(toDisk+"/" + ze.getName());f.mkdirs();continue;}OutputStream outputStream = null;InputStream inputStream = null;try {// 以ZipEntry为参数得到一个InputStream,并写到OutputStream中outputStream = new BufferedOutputStream(new FileOutputStream(getRealFileName(toDisk, ze.getName())));inputStream = new BufferedInputStream(zfile.getInputStream(ze));int readLen = 0;while ((readLen = inputStream.read(buf, 0, 1024)) != -1) {outputStream.write(buf, 0, readLen);}inputStream.close();outputStream.close();} catch (Exception e) {// log.info("解压失败:"+e.toString());throw new IOException("解压失败:" + e.toString());} finally {if (inputStream != null) {try {inputStream.close();} catch (IOException ex) {}}if (outputStream != null) {try {outputStream.close();} catch (IOException ex) {ex.printStackTrace();}}inputStream = null;outputStream = null;}}zfile.close();}/*** * 给定根目录,返回一个相对路径所对应的实际文件名.* * @param zippath* 指定根目录* * @param absFileName* 相对路径名,来自于ZipEntry中的name* * @return java.io.File 实际的文件* */private static File getRealFileName(String zippath, String absFileName) {// log.info("文件名:"+absFileName);String[] dirs = absFileName.split("/", absFileName.length());File ret = new File(zippath);// 创建文件对象if (dirs.length > 1) {for (int i = 0; i < dirs.length - 1; i++) {ret = new File(ret, dirs[i]);}}if (!ret.exists()) {// 检测文件是否存在ret.mkdirs();// 创建此抽象路径名指定的目录}ret = new File(ret, dirs[dirs.length - 1]);// 根据 ret 抽象路径名和 child// 路径名字符串创建一个新 File 实例return ret;}}
java解压zip文件相关推荐
- java解压zip文件,处理文件名不能为中文
1.最近工作需要把压缩文件解压,经过测试有两种方法,一种是JDK自带的ZipFile, 另外一种是org.apache.tools.zip进行解压. 2.经测试,JDK自带的文件不能处理文 ...
- Java解压zip文件(文本)压缩包
2019独角兽企业重金招聘Python工程师标准>>> 说明:由于我们的日志收集到指定服务器上,会按天压缩成一个zip格式的压缩包,但是有时候需要对这些日志进行处理,人工解压在处理, ...
- Java解压Zip文件 小结
1.首先,列举以下会提及到的三种解压方式:操作7z.exe解压.使用ant-1.9.6.jar解压.使用zip4j-1.3.2.jar解压. 2.第一种:java操作7z.exe解压文件,其实就是通过 ...
- 【无标题】JAVA解压ZIP文件并解析Excel(easyExcel)
返回值我用的是公司自定义的FT框架 具体返回值根据公司而定 一般在上传文件,PDF,Excel,zip压缩包时 后端基本都用MultipartFile接收 一定加上Http请求方便后续拼接路径 需求: ...
- java csv文件tozip后损坏_java上传并下载以及解压zip文件有时会报文件被损坏错误分析以及解决...
情景描述: 1.将本地数据备份成zip文件: 2.将备份的zip文件通过sftp上传到文件服务器: 3.将文件服务器上的zip文件下载到运行服务器: 4.将下载的zip文件解压到本地(文件大小超过50 ...
- web上传zip大文件,java服务接收并解压ZIP文件
目录 一.背景 二.知识点 三.代码实现 1.依赖 2.web 代码 3. java服务端 一.背景 公司产品小伙伴画了原型后,需要上传到服务器上供开发查看:由于文件数量很多,100M左右差不多要传3 ...
- java 解压文件_java实现解压zip文件,(亲测可用)!!!!!!
项目结构: Util.java内容: package com.cfets.demo; import java.io.File; import java.io.FileOutputStream; imp ...
- Java 压缩与解压zip文件
一.压缩文件大致可以分为三种:ZIP.JAR.GZ. 压缩流 在日常中经常会使用到像WinRAR或WinZIP这样的压缩文件,通过这些软件可以把一个很大的文件进行压缩以方便传输. 在JAVA中,为了减 ...
- 【Android 安全】DEX 加密 ( 代理 Application 开发 | 解压 apk 文件 | 判定是否是第一次启动 | 递归删除文件操作 | 解压 Zip 文件操作 )
文章目录 一.判定是否是第一次启动 二.递归删除文件操作 三.解压 Zip 文件操作 四.解压操作相关代码 参考博客 : [Android 安全]DEX 加密 ( 常用 Android 反编译工具 | ...
最新文章
- oracle实例无法启动也无法关闭
- 使用Git工具生成公钥与私钥
- 来自Riot 的一份游戏美术教程(四):环境美术
- 111. Minimum Depth of Binary Tree 二叉树的最小深度
- python拼图游戏代码,OpenCV Python实现拼图小游戏
- 《Android开发从零开始》——26.数据存储(5)
- 自己写cache server之网络框架处理——Oracle、Mysql都不靠谱儿(中)
- Exchange2003 备份与还原
- 下载pyboard的flash中的驱动程序_HASP加密狗驱动程序没有安装成功如何解决
- 软件产品测试报告模板
- 计算机网络的定义以及分类
- Excel如何快速在指定字符后面插入文本
- 企查查网站信息爬取1.0版
- 根据pc值确定出错的代码位置
- 再战双十一,阿里这回真的“上天”了!
- Linux内核踩坑笔记
- 毕业设计日志(18)
- python模拟火车票订票系统_pythonCCF 201609-2火车票购买,PythonCCF2016092,购票
- python 计算召回率的程序_python实现计算精度、召回率和F1值
- CentOS 7 安装 Development Tools