大家好,欢迎来到IT知识分享网。
每天分享java小知识 小干活,欢迎关注转发评论交流,每天一点进步!
package com.zldc.oaToKnowledgePlugin.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 java.util.zip.ZipEntry; import java.util.zip.ZipFile; import org.springframework.util.StringUtils; /** * 解压Zip文件工具类 * * @author pzx * */ public class ZipUtil { private static final int buffer = 2048; /** * @param path 文件路径 * @param savePath 要解压到路径 * @param reName 解压后的文件名称 * @return */ public static boolean unZip(String path, String savePath, String reName) { int count = -1; File file = null; InputStream is = null; FileOutputStream fos = null; BufferedOutputStream bos = null; File savepathFile = new File(savePath); // 创建保存目录 if (!savepathFile.exists()) { savepathFile.mkdirs(); } ZipFile zipFile = null; try { zipFile = new ZipFile(path); Enumeration<?> entries = zipFile.entries(); while (entries.hasMoreElements()) { byte buf[] = new byte[buffer]; ZipEntry entry = (ZipEntry) entries.nextElement(); String filename = entry.getName().substring(entry.getName().lastIndexOf("\\") + 1, entry.getName().length()); boolean ismkdir = false; if (filename.lastIndexOf("/") != -1) { // 检查此文件是否带有文件夹 ismkdir = true; } if (!StringUtils.isEmpty(reName)) { filename = savePath + reName; } else { filename = savePath + filename; } if (entry.isDirectory()) { // 如果是文件夹先创建 file = new File(filename); file.mkdirs(); continue; } file = new File(filename); if (!file.exists()) { // 如果是目录先创建 if (ismkdir) { new File(filename.substring(0, filename.lastIndexOf("/"))).mkdirs(); // 目录先创建 } } file.createNewFile(); // 创建文件 is = zipFile.getInputStream(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(); return false; } 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) { e.printStackTrace(); } } return true; } }
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/54530.html