From 1d53dd8f501a98ddcce8146443b51b357ef5f9b1 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期四, 29 十二月 2022 16:55:46 +0800 Subject: [PATCH] 1 --- src/main/java/com/lf/server/helper/ZipHelper.java | 50 ++++++++++++++++++++++++++++++++++---------------- 1 files changed, 34 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/lf/server/helper/ZipHelper.java b/src/main/java/com/lf/server/helper/ZipHelper.java index 0b21fe2..9522053 100644 --- a/src/main/java/com/lf/server/helper/ZipHelper.java +++ b/src/main/java/com/lf/server/helper/ZipHelper.java @@ -21,18 +21,23 @@ private final static Log log = LogFactory.getLog(ZipHelper.class); /** - * 瑙e帇缂� + * Zip瑙e帇 * * @param filePath zip鏂囦欢 * @param zipDir 瑙e帇璺緞 * @return 鎴愬姛鏄�/鍚� */ public static boolean unzip(String filePath, String zipDir) { + ZipFile zipFile = null; try { - int count; - ZipFile zipfile = new ZipFile(filePath); + File dir = new File(zipDir); + if (!dir.exists() || !dir.isDirectory()) { + dir.mkdirs(); + } - Enumeration e = zipfile.entries(); + int count; + zipFile = new ZipFile(filePath); + Enumeration e = zipFile.entries(); while (e.hasMoreElements()) { ZipEntry entry = (ZipEntry) e.nextElement(); if (entry.isDirectory()) { @@ -43,52 +48,65 @@ continue; } - BufferedInputStream is = new BufferedInputStream(zipfile.getInputStream(entry)); + BufferedInputStream is = new BufferedInputStream(zipFile.getInputStream(entry)); FileOutputStream fos = new FileOutputStream(zipDir + File.separator + entry.getName()); BufferedOutputStream dest = new BufferedOutputStream(fos, BUFFER_SIZE); - while ((count = is.read(BUFFER, 0, BUFFER_SIZE)) != -1) { dest.write(BUFFER, 0, count); } + dest.flush(); dest.close(); + fos.close(); is.close(); } return true; } catch (Exception ex) { - log.error(ex.getMessage() + ex.getStackTrace() + "\n"); + log.error(ex.getMessage(), ex); return false; + } finally { + try { + if (null != zipFile) { + zipFile.close(); + } + } catch (Exception e) { + log.error(e.getMessage(), e); + } } } /** * Zip鍘嬬缉 * - * @param zipFile Zip婧愭枃浠� + * @param zipFile zip婧愭枃浠� * @param sourceDir 婧愭枃浠跺す * @return 鎴愬姛鏄�/鍚� */ public static boolean zip(String zipFile, String sourceDir) { + FileOutputStream fos = null; ZipOutputStream zos = null; try { - FileOutputStream fileOutputStream = new FileOutputStream(zipFile); - zos = new ZipOutputStream(fileOutputStream); + fos = new FileOutputStream(zipFile); + zos = new ZipOutputStream(fos); File sourceFile = new File(sourceDir); compress(sourceFile, zos, sourceFile.getName()); return true; } catch (Exception ex) { - log.error(ex.getMessage() + ex.getStackTrace() + "\n"); + log.error(ex.getMessage(), ex); return false; } finally { try { - if (zos != null) { + if (null != zos) { zos.close(); } + if (null != fos) { + fos.close(); + } } catch (Exception e) { - log.error(e.getMessage() + e.getStackTrace() + "\n"); + log.error(e.getMessage(), e); } } } @@ -96,9 +114,9 @@ /** * Zip鍘嬬缉 * - * @param sourceFile Zip婧愭枃浠� - * @param zos Zip杈撳嚭娴� - * @param name Zip鏂囦欢鍚嶇О + * @param sourceFile zip婧愭枃浠� + * @param zos zip杈撳嚭娴� + * @param name zip鏂囦欢鍚嶇О * @throws Exception */ public static void compress(File sourceFile, ZipOutputStream zos, String name) throws Exception { -- Gitblit v1.9.3