java压缩/解压war包

java压缩/解压war包packagecom.kingsoft.unwar;importjava.io.BufferedInputStream;importjava.io.BufferedOutputStream;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用
package com.kingsoft.unwar;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.util.Iterator;import org.apache.commons.compress.archivers.ArchiveException;import org.apache.commons.compress.archivers.ArchiveInputStream;import org.apache.commons.compress.archivers.ArchiveOutputStream;import org.apache.commons.compress.archivers.ArchiveStreamFactory;import org.apache.commons.compress.archivers.jar.JarArchiveEntry;import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;import org.apache.commons.compress.utils.IOUtils;import org.apache.commons.io.FileUtils;/** * 处理WAR文件工具类。可压缩或解压缩WAR文件。 * * @author Xiong Shuhong(shelltea@gmail.com) */public class WarUtils { public static void unzip(String warPath, String unzipPath) { File warFile = new File(warPath); if(warFile.isDirectory()){ for(String fileName : warFile.list()){ System.out.println(fileName); if(fileName.trim().endsWith(“.war”)){ System.out.println(“————-“); warPath = warPath + File.separator + fileName; System.out.println(warPath); warFile = new File(warPath); break; } } }else{ return; } try { BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(warFile)); ArchiveInputStream in = new ArchiveStreamFactory().createArchiveInputStream(ArchiveStreamFactory.JAR, bufferedInputStream); JarArchiveEntry entry = null; while ((entry = (JarArchiveEntry) in.getNextEntry()) != null) { if (entry.isDirectory()) { new File(unzipPath, entry.getName()).mkdir(); } else { OutputStream out = FileUtils.openOutputStream(new File(unzipPath, entry.getName())); IOUtils.copy(in, out); out.close(); } } in.close(); } catch (FileNotFoundException e) { System.err.println(“未找到war文件”); } catch (ArchiveException e) { System.err.println(“不支持的压缩格式”); } catch (IOException e) { System.err.println(“文件写入发生错误”); } } public static void zip(String destFile, String zipDir) { File outFile = new File(destFile); try { outFile.createNewFile(); BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(outFile)); ArchiveOutputStream out = new ArchiveStreamFactory().createArchiveOutputStream(ArchiveStreamFactory.JAR, bufferedOutputStream); if (zipDir.charAt(zipDir.length() – 1) != ‘/’) { zipDir += ‘/’; } Iterator files = FileUtils.iterateFiles(new File(zipDir), null, true); while (files.hasNext()) { File file = files.next(); ZipArchiveEntry zipArchiveEntry = new ZipArchiveEntry(file, file.getPath().replace( zipDir.replace(“/”, “\\”), “”)); out.putArchiveEntry(zipArchiveEntry); IOUtils.copy(new FileInputStream(file), out); out.closeArchiveEntry(); } out.finish(); out.close(); } catch (IOException e) { System.err.println(“创建文件失败”); } catch (ArchiveException e) { System.err.println(“不支持的压缩格式”); } } public static void main(String[] args) { new WarUtils().unzip(“C:\\nihao”, “C:\\nihao”);; } }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/186059.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • U盘重装系统

    U盘重装系统U盘重装系统

    2022年4月24日
    38
  • JS 取整 取余(C语言除法怎么取整怎么取余)

    JS取整取余取整1.取整//保留整数部分parseInt(3/2)  //12.向上取整//向上取整,有小数就整数部分加1Math.ceil(3/2)  //23.四舍五入//四舍五入Math.round(3/2)  //24.向下取整//向下取整,丢弃小数部分Math.floor(3/2)  //1取余…

    2022年4月11日
    43
  • Elasticsearch面试题精选20题[通俗易懂]

    Elasticsearch面试题精选20题[通俗易懂]题目均来源于网络,为个人学习标注并纠错后发布。目录1.ES为什么那么快(ES的索引原理)?Elasticsearch查询速度为什么这么快?2.MongoDB和Elasticsearch区别3.ES的倒排索引是什么?4.Elasticsearch索引数据多了怎么办,如何调优,部署?5.说你们公司ES的集群架构,索引数据大小,分片有多少,以及一些调优手段。6.Elasticsearch是如何实现master选举的?7.详细描述一下Elasticsearch索引文档的过程。

    2022年9月13日
    0
  • Windows API——CFile, read, write,typeBinary函数「建议收藏」

    Windows API——CFile, read, write,typeBinary函数「建议收藏」文件操作API和CFile类在VC中,操作文件的方法有两种,一是利用一些API函数来创建,打开,读写文件,另外一个是利用MFC的CFile类,CFile封装了对文件的一般操作。下面酒主要介绍如何利用这两种方法操作文件。1.创建或打开一个文件API函数CreateFile可打开和创建文件、管道、邮槽、通信服务、设备以及控制台,但是在此时只是介绍用这个函数怎么实现创建和打开一个文件。HANDL…

    2022年8月18日
    6
  • 数据中心的变化需要更多有效冷却方式[通俗易懂]

    数据中心的变化需要更多有效冷却方式[通俗易懂]数据中心的变化需要更多有效冷却方式

    2022年4月20日
    37
  • nodejs安装后没有npm(nodejs和npm)

    如下命令便可以实现该目的:#apt-get卸载sudoapt-getremove–purgenpmsudoapt-getremove–purgenodejssudoapt-getremove–purgenodejs-legacysudoapt-getautoremove#手动删除n…

    2022年4月10日
    877

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号