前言:
目前看官们对“java 解压zip格式字符串”都比较关注,小伙伴们都需要分析一些“java 解压zip格式字符串”的相关资讯。那么小编在网摘上汇集了一些关于“java 解压zip格式字符串””的相关资讯,希望我们能喜欢,小伙伴们一起来学习一下吧!每天分享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; }}
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #java 解压zip格式字符串 #java解压 #java 压缩包解压