Java解压zip文件完整代码分享

Java解压zip⽂件完整代码分享关于Java解压zip⽂件,我觉得也没啥好多说的,就是⼲呗。。代码如下:
package com.lanyuan.assembly.util;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import ls.zip.ZipEntry;
import ls.zip.ZipFile;
/**
* 解压Zip⽂件⼯具类
* @author zhangyongbo
*
*/
public class ZipUtil
{
private static final int buffer = 2048;
/**
* 解压Zip⽂件
* @param path ⽂件⽬录
*/
public static void unZip(String path)
{
int count = -1;
String savepath = "";
File file = null;
InputStream is = null;
FileOutputStream fos = null;
BufferedOutputStream bos = null;
savepath = path.substring(0, path.lastIndexOf(".")) + File.separator; //保存解压⽂件⽬录
new File(savepath).mkdir(); //创建保存⽬录
ZipFile zipFile = null;
try
{
zipFile = new ZipFile(path,"gbk"); //解决中⽂乱码问题
Enumeration<?> entries = Entries();
while(entries.hasMoreElements())
{
byte buf[] = new byte[buffer];
ZipEntry entry = (Element();
String filename = Name();
boolean ismkdir = false;
if(filename.lastIndexOf("/") != -1){ //检查此⽂件是否带有⽂件夹
ismkdir = true;
}
filename = savepath + filename;
if(entry.isDirectory()){ //如果是⽂件夹先创建
file = new File(filename);
file.mkdirs();
continue;
}
file = new File(filename);
if(!ists()){ //如果是⽬录先创建
if(ismkdir){
new File(filename.substring(0, filename.lastIndexOf("/"))).mkdirs(); //⽬录先创建
}
}
is = InputStream(entry);
fos = new FileOutputStream(file);
bos = new BufferedOutputStream(fos, buffer);
while((count = is.read(buf)) > -1)
{
bos.write(buf, 0, count);
}
bos.flush();
bos.close();
fos.close();
is.close();
}
zipFile.close();
}catch(IOException ioe){
ioe.printStackTrace();
}finally{
try{
if(bos != null){
bos.close();
}
if(fos != null) {
fos.close();
}
if(is != null){
is.close();
}
if(zipFile != null){
zipFile.close();
}
}catch(Exception e) {ibm as400
e.printStackTrace();
}
}
}
/*public static void main(String[] args)
{
unZip("F:\\110000002.zip");
String f = "F:\\110000002";
File file = new File(f);
String[] test=file.list();
for(int i=0;i<test.length;i++){
System.out.println(test[i]);
}
System.out.println("------------------");
String fileName = "";
File[] tempList = file.listFiles();
for (int i = 0; i < tempList.length; i++) {
if (tempList[i].isFile()) {
System.out.println("⽂件:"+tempList[i]);
fileName = tempList[i].getName();
System.out.println("⽂件名:"+fileName);
}
if (tempList[i].isDirectory()) {
System.out.println("⽂件夹:"+tempList[i]);
}
}
} */
}
上⾯是第⼀种的代码⽰例,接着是另外⼀种,代码如下:
import java.io.*;
import java.nio.charset.Charset;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
/**
* Created by wzj on 2016/9/9.
*/
public class UZipFile
{
/**
* 解压到指定⽬录
*/
public static void unZipFiles(String zipPath,String descDir)throws IOException  {
unZipFiles(new File(zipPath), descDir);
}
/**
* 解压⽂件到指定⽬录
*/
科学出版社
@SuppressWarnings("rawtypes")
public static void unZipFiles(File zipFile,String descDir)throws IOException
{
File pathFile = new File(descDir);
if(!ists())
{
pathFile.mkdirs();
}
//解决zip⽂件中有中⽂⽬录或者中⽂⽂件
ZipFile zip = new ZipFile(zipFile, Charset.forName("GBK"));
for(Enumeration entries = ies(); entries.hasMoreElements();)
{
ZipEntry entry = (Element();
String zipEntryName = Name();
InputStream in = InputStream(entry);
String outPath = (descDir+zipEntryName).replaceAll("\\*", "/");;
//判断路径是否存在,不存在则创建⽂件路径
File file = new File(outPath.substring(0, outPath.lastIndexOf('/')));
缝隙天线
if(!ists())
{
file.mkdirs();
}
//判断⽂件全路径是否为⽂件夹,如果是上⾯已经上传,不需要解压
if(new File(outPath).isDirectory())
{
continue;
}
//输出⽂件路径信息
System.out.println(outPath);
OutputStream out = new FileOutputStream(outPath);
byte[] buf1 = new byte[1024];
int len;
while((ad(buf1))>0)
{
out.write(buf1,0,len);
}
in.close();
out.close();
}
System.out.println("******************解压完毕********************");
}
public static void main(String[] args) throws IOException {
/**
* 解压⽂件
*/
File zipFile = new File("d:/资料.zip");
String path = "d:/zipfile/";
unZipFiles(zipFile, path);
}
}
测试结果
d:/zipfile/资料/三⼤框架所有题.htm
d:/zipfile/资料/三⼤框架所有题_files/bootstrap.css
d:/zipfile/资料/三⼤框架所有题_files/bootstrap.js
d:/zipfile/资料/三⼤框架所有题_files/css_global.css
d:/zipfile/资料/三⼤框架所有题_files/jquery.js
d:/zipfile/资料/三⼤框架所有题_files/logo.png
d:/zipfile/资料/三⼤框架所有题_files/scripts(1).php
d:/zipfile/资料/三⼤框架所有题_files/scripts(2).php
d:/zipfile/资料/三⼤框架所有题_files/scripts.js
d:/zipfile/资料/三⼤框架所有题_files/scripts.php
d:/zipfile/资料/三⼤框架所有题_files/transparent.gif
d:/zipfile/资料/回顾.txt
d:/zipfile/资料/源码/day29_00_struts2Interceptor/.classpath
d:/zipfile/资料/源码/day29_00_struts2Interceptor/.mymetadata
d:/zipfile/资料/源码/day29_00_struts2Interceptor/.project豹团网
d:/zipfile/资料/源码/day29_00_struts2Interceptor/.settings/.jsdtscope
d:/zipfile/资料/源码/day29_00_struts2Interceptor/.prefs
d:/zipfile/资料/源码/day29_00_struts2Interceptor/.prefs
d:/zipfile/资料/源码/day29_00_struts2Interceptor/.lipse.wstmonponent
d:/zipfile/资料/源码/day29_00_struts2Interceptor/.lipse.wstmon.ml
d:/zipfile/资料/源码/day29_00_struts2Interceptor/.lipse.wst.jsdt.ainer
d:/zipfile/资料/源码/day29_00_struts2Interceptor/.lipse.wst.jsdt.ui.superType.name
d:/zipfile/资料/源码/day29_00_struts2Interceptor/WebRoot/1.jsp
d:/zipfile/资料/源码/day29_00_struts2Interceptor/WebRoot/META-INF/MANIFEST.MF
d:/zipfile/资料/源码/day29_00_struts2Interceptor/WebRoot/WEB-INF/classes/com/itheima/action/Demo1Action.class
d:/zipfile/资料/源码/day29_00_struts2Interceptor/WebRoot/WEB-INF/classes/com/itheima/action/UserAction.class
d:/zipfile/资料/源码/day29_00_struts2Interceptor/WebRoot/WEB-INF/classes/com/itheima/interceptors/Demo1Interceptor.class d:/zipfile/资料/源码/day29_00_struts2Interceptor/WebRoot/WEB-INF/classes/com/itheima/interceptors/LoginCheckInterceptor.class d:/zipfile/资料/源码/day29_00_struts2Interceptor/WebRoot/WEB-INF/l
d:/zipfile/资料/源码/day29_00_struts2Interceptor/WebRoot/WEB-INF/lib/asm-3.3.jar
d:/zipfile/资料/源码/day29_00_struts2Interceptor/WebRoot/WEB-INF/lib/asm-commons-3.3.jar
d:/zipfile/资料/源码/day29_00_struts2Interceptor/WebRoot/WEB-INF/lib/asm-tree-3.3.jar
d:/zipfile/资料/源码/day29_00_struts2Interceptor/WebRoot/WEB-INF/lib/commons-fileupload-1.3.jar
d:/zipfile/资料/源码/day29_00_struts2Interceptor/WebRoot/WEB-INF/lib/commons-io-2.0.1.jar
d:/zipfile/资料/源码/day29_00_struts2Interceptor/WebRoot/WEB-INF/lib/commons-lang3-3.1.jar
d:/zipfile/资料/源码/day29_00_struts2Interceptor/WebRoot/WEB-INF/lib/commons-logging-1.1.3.jar
d:/zipfile/资料/源码/day29_00_struts2Interceptor/WebRoot/WEB-INF/lib/freemarker-2.3.19.jar
d:/zipfile/资料/源码/day29_00_struts2Interceptor/WebRoot/WEB-INF/lib/javassist-3.11.0.GA.jar
d:/zipfile/资料/源码/day29_00_struts2Interceptor/WebRoot/WEB-INF/lib/log4j-1.2.17.jar
d:/zipfile/资料/源码/day29_00_struts2Interceptor/WebRoot/WEB-INF/lib/ognl-3.0.6.jar
d:/zipfile/资料/源码/day29_00_struts2Interceptor/WebRoot/WEB-INF/lib/struts2-core-2.3.15.3.jar
d:/zipfile/资料/源码/day29_00_struts2Interceptor/WebRoot/WEB-INF/lib/xwork-core-2.3.15.3.jar
d:/zipfile/资料/源码/day29_00_struts2Interceptor/WebRoot/l
d:/zipfile/资料/源码/day29_00_struts2Interceptor/WebRoot/index.jsp
d:/zipfile/资料/源码/day29_00_struts2Interceptor/WebRoot/login.jsp
d:/zipfile/资料/源码/day29_00_struts2Interceptor/src/com/itheima/action/Demo1Action.java
d:/zipfile/资料/源码/day29_00_struts2Interceptor/src/com/itheima/action/UserAction.java
d:/zipfile/资料/源码/day29_00_struts2Interceptor/src/com/itheima/interceptors/Demo1Interceptor.java
d:/zipfile/资料/源码/day29_00_struts2Interceptor/src/com/itheima/interceptors/LoginCheckInterceptor.java
d:/zipfile/资料/源码/day29_00_struts2Interceptor/l
d:/zipfile/资料/源码/day29_01_struts2Upload/.classpath
d:/zipfile/资料/源码/day29_01_struts2Upload/.mymetadata
d:/zipfile/资料/源码/day29_01_struts2Upload/.project
d:/zipfile/资料/源码/day29_01_struts2Upload/.settings/.jsdtscope
d:/zipfile/资料/源码/day29_01_struts2Upload/.prefs
d:/zipfile/资料/源码/day29_01_struts2Upload/.prefs
d:/zipfile/资料/源码/day29_01_struts2Upload/.lipse.wstmonponent乳糖操纵子
d:/zipfile/资料/源码/day29_01_struts2Upload/.lipse.wstmon.ml
d:/zipfile/资料/源码/day29_01_struts2Upload/.lipse.wst.jsdt.ainer
d:/zipfile/资料/源码/day29_01_struts2Upload/.lipse.wst.jsdt.ui.superType.name
d:/zipfile/资料/源码/day29_01_struts2Upload/WebRoot/1.jsp
d:/zipfile/资料/源码/day29_01_struts2Upload/WebRoot/2.jsp
d:/zipfile/资料/源码/day29_01_struts2Upload/WebRoot/META-INF/MANIFEST.MF
精神医学杂志
d:/zipfile/资料/源码/day29_01_struts2Upload/WebRoot/WEB-INF/classes/com/itheima/action/DownloadAction.class
d:/zipfile/资料/源码/day29_01_struts2Upload/WebRoot/WEB-INF/classes/com/itheima/action/Upload1Action.class
d:/zipfile/资料/源码/day29_01_struts2Upload/WebRoot/WEB-INF/classes/com/itheima/action/Upload1Action_zh_CN.properties d:/zipfile/资料/源码/day29_01_struts2Upload/WebRoot/WEB-INF/classes/com/itheima/action/Upload2Action.class
d:/zipfile/资料/源码/day29_01_struts2Upload/WebRoot/WEB-INF/l
d:/zipfile/资料/源码/day29_01_struts2Upload/WebRoot/WEB-INF/classes/美⼥.jpg
d:/zipfile/资料/源码/day29_01_struts2Upload/WebRoot/WEB-INF/lib/asm-3.3.jar
d:/zipfile/资料/源码/day29_01_struts2Upload/WebRoot/WEB-INF/lib/asm-commons-3.3.jar
d:/zipfile/资料/源码/day29_01_struts2Upload/WebRoot/WEB-INF/lib/asm-tree-3.3.jar
d:/zipfile/资料/源码/day29_01_struts2Upload/WebRoot/WEB-INF/lib/commons-fileupload-1.3.jar
d:/zipfile/资料/源码/day29_01_struts2Upload/WebRoot/WEB-INF/lib/commons-io-2.0.1.jar
d:/zipfile/资料/源码/day29_01_struts2Upload/WebRoot/WEB-INF/lib/commons-lang3-3.1.jar
d:/zipfile/资料/源码/day29_01_struts2Upload/WebRoot/WEB-INF/lib/commons-logging-1.1.3.jar
d:/zipfile/资料/源码/day29_01_struts2Upload/WebRoot/WEB-INF/lib/freemarker-2.3.19.jar
d:/zipfile/资料/源码/day29_01_struts2Upload/WebRoot/WEB-INF/lib/javassist-3.11.0.GA.jar
d:/zipfile/资料/源码/day29_01_struts2Upload/WebRoot/WEB-INF/lib/log4j-1.2.17.jar
d:/zipfile/资料/源码/day29_01_struts2Upload/WebRoot/WEB-INF/lib/ognl-3.0.6.jar
d:/zipfile/资料/源码/day29_01_struts2Upload/WebRoot/WEB-INF/lib/struts2-core-2.3.15.3.jar
d:/zipfile/资料/源码/day29_01_struts2Upload/WebRoot/WEB-INF/lib/xwork-core-2.3.15.3.jar
d:/zipfile/资料/源码/day29_01_struts2Upload/WebRoot/l
d:/zipfile/资料/源码/day29_01_struts2Upload/WebRoot/success.jsp
d:/zipfile/资料/源码/day29_01_struts2Upload/src/com/itheima/action/DownloadAction.java
d:/zipfile/资料/源码/day29_01_struts2Upload/src/com/itheima/action/Upload1Action.java
d:/zipfile/资料/源码/day29_01_struts2Upload/src/com/itheima/action/Upload1Action_zh_CN.properties
d:/zipfile/资料/源码/day29_01_struts2Upload/src/com/itheima/action/Upload2Action.java
d:/zipfile/资料/源码/day29_01_struts2Upload/l
d:/zipfile/资料/源码/day29_01_struts2Upload/src/美⼥.jpg
d:/zipfile/资料/源码/day29_02_struts2ognl/.classpath
d:/zipfile/资料/源码/day29_02_struts2ognl/.mymetadata
d:/zipfile/资料/源码/day29_02_struts2ognl/.project
d:/zipfile/资料/源码/day29_02_struts2ognl/.settings/.jsdtscope
d:/zipfile/资料/源码/day29_02_struts2ognl/.prefs
d:/zipfile/资料/源码/day29_02_struts2ognl/.prefs
d:/zipfile/资料/源码/day29_02_struts2ognl/.lipse.wstmonponent
d:/zipfile/资料/源码/day29_02_struts2ognl/.lipse.wstmon.ml
d:/zipfile/资料/源码/day29_02_struts2ognl/.lipse.wst.jsdt.ainer
d:/zipfile/资料/源码/day29_02_struts2ognl/.lipse.wst.jsdt.ui.superType.name
d:/zipfile/资料/源码/day29_02_struts2ognl/WebRoot/1.jsp
d:/zipfile/资料/源码/day29_02_struts2ognl/WebRoot/2.jsp
d:/zipfile/资料/源码/day29_02_struts2ognl/WebRoot/3.jsp
d:/zipfile/资料/源码/day29_02_struts2ognl/WebRoot/4.jsp
d:/zipfile/资料/源码/day29_02_struts2ognl/WebRoot/5.jsp
d:/zipfile/资料/源码/day29_02_struts2ognl/WebRoot/6.jsp
d:/zipfile/资料/源码/day29_02_struts2ognl/WebRoot/7.jsp
d:/zipfile/资料/源码/day29_02_struts2ognl/WebRoot/META-INF/MANIFEST.MF
d:/zipfile/资料/源码/day29_02_struts2ognl/WebRoot/WEB-INF/classes/com/itheima/action/Demo1Action.class
d:/zipfile/资料/源码/day29_02_struts2ognl/WebRoot/WEB-INF/classes/com/itheima/action/Demo2Action.class
d:/zipfile/资料/源码/day29_02_struts2ognl/WebRoot/WEB-INF/classes/com/itheima/action/Demo3Action.class
d:/zipfile/资料/源码/day29_02_struts2ognl/WebRoot/WEB-INF/classes/com/itheima/domain/User.class
d:/zipfile/资料/源码/day29_02_struts2ognl/WebRoot/WEB-INF/l
d:/zipfile/资料/源码/day29_02_struts2ognl/WebRoot/WEB-INF/lib/asm-3.3.jar
d:/zipfile/资料/源码/day29_02_struts2ognl/WebRoot/WEB-INF/lib/asm-commons-3.3.jar
d:/zipfile/资料/源码/day29_02_struts2ognl/WebRoot/WEB-INF/lib/asm-tree-3.3.jar
d:/zipfile/资料/源码/day29_02_struts2ognl/WebRoot/WEB-INF/lib/commons-fileupload-1.3.jar
d:/zipfile/资料/源码/day29_02_struts2ognl/WebRoot/WEB-INF/lib/commons-io-2.0.1.jar
d:/zipfile/资料/源码/day29_02_struts2ognl/WebRoot/WEB-INF/lib/commons-lang3-3.1.jar
d:/zipfile/资料/源码/day29_02_struts2ognl/WebRoot/WEB-INF/lib/commons-logging-1.1.3.jar
d:/zipfile/资料/源码/day29_02_struts2ognl/WebRoot/WEB-INF/lib/freemarker-2.3.19.jar
d:/zipfile/资料/源码/day29_02_struts2ognl/WebRoot/WEB-INF/lib/javassist-3.11.0.GA.jar
d:/zipfile/资料/源码/day29_02_struts2ognl/WebRoot/WEB-INF/lib/log4j-1.2.17.jar
d:/zipfile/资料/源码/day29_02_struts2ognl/WebRoot/WEB-INF/lib/ognl-3.0.6.jar
d:/zipfile/资料/源码/day29_02_struts2ognl/WebRoot/WEB-INF/lib/struts2-core-2.3.15.3.jar
d:/zipfile/资料/源码/day29_02_struts2ognl/WebRoot/WEB-INF/lib/xwork-core-2.3.15.3.jar
d:/zipfile/资料/源码/day29_02_struts2ognl/WebRoot/l
d:/zipfile/资料/源码/day29_02_struts2ognl/src/com/itheima/action/Demo1Action.java
d:/zipfile/资料/源码/day29_02_struts2ognl/src/com/itheima/action/Demo2Action.java
d:/zipfile/资料/源码/day29_02_struts2ognl/src/com/itheima/action/Demo3Action.java
d:/zipfile/资料/源码/day29_02_struts2ognl/src/com/itheima/domain/User.java
d:/zipfile/资料/源码/day29_02_struts2ognl/l
d:/zipfile/资料/课堂笔记.doc
******************解压完毕********************
总结
以上就是Java解压zip⽂件完整代码分享的全部内容,希望对⼤家有所帮助。感兴趣的朋友可以继续参阅本站:、、等,有什么问题可以随时留⾔,⼩编会及时回复⼤家的。感谢朋友们对本站的⽀持!

本文发布于:2024-09-23 02:30:12,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/158794.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:资料   解压   源码   路径   是否   朋友   存在
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议