From b6b0cb226fcf184525ee7b36af3a09471e9c0057 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期一, 25 三月 2024 11:29:33 +0800 Subject: [PATCH] 修改数据统计的查询条件 --- src/main/java/com/lf/server/helper/ZipHelper.java | 105 +++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 75 insertions(+), 30 deletions(-) diff --git a/src/main/java/com/lf/server/helper/ZipHelper.java b/src/main/java/com/lf/server/helper/ZipHelper.java index 09d4af5..42ddd86 100644 --- a/src/main/java/com/lf/server/helper/ZipHelper.java +++ b/src/main/java/com/lf/server/helper/ZipHelper.java @@ -4,6 +4,7 @@ import org.apache.commons.logging.LogFactory; import java.io.*; +import java.nio.charset.Charset; import java.util.Enumeration; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; @@ -28,38 +29,78 @@ * @return 鎴愬姛鏄�/鍚� */ public static boolean unzip(String filePath, String zipDir) { + ZipFile zipFile = null; try { - int count; - ZipFile zipfile = new ZipFile(filePath); - - Enumeration e = zipfile.entries(); - while (e.hasMoreElements()) { - ZipEntry entry = (ZipEntry) e.nextElement(); - if (entry.isDirectory()) { - File f = new File(zipDir + File.separator + entry.getName()); - if (!f.exists()) { - f.mkdirs(); - } - continue; - } - - 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(); - is.close(); + File dir = new File(zipDir); + if (!dir.exists() || !dir.isDirectory()) { + dir.mkdirs(); } + + zipFile = new ZipFile(filePath, Charset.forName("GBK")); + createDirs(zipFile, zipDir); + writeFiles(zipFile, zipDir); 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); + } } + } + + /** + * 鍒涘缓鐩綍 + */ + private static void createDirs(ZipFile zipFile, String zipDir) { + Enumeration<?> e = zipFile.entries(); + while (e.hasMoreElements()) { + ZipEntry entry = (ZipEntry) e.nextElement(); + if (entry.isDirectory()) { + File f = new File(zipDir + File.separator + entry.getName()); + if (!f.exists()) { + f.mkdirs(); + } + } + } + } + + /** + * 鍐欐枃浠� + */ + private static void writeFiles(ZipFile zipFile, String zipDir) throws IOException { + Enumeration<?> e = zipFile.entries(); + while (e.hasMoreElements()) { + ZipEntry entry = (ZipEntry) e.nextElement(); + if (!entry.isDirectory()) { + writeFile(zipFile, entry, zipDir); + } + } + } + + /** + * 鍐欐枃浠� + */ + private static void writeFile(ZipFile zipFile, ZipEntry entry, String zipDir) throws IOException { + int count; + + 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(); } /** @@ -70,25 +111,29 @@ * @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); } } } -- Gitblit v1.9.3