java实现解压war_java文件操作之war压缩解压

java实现解压war_java文件操作之war压缩解压文章来源 java 实现可压缩或解压缩 WAR 文件 packageutils importjava io BufferedInpu importjava io BufferedOutp importjava io File importjava io FileInputStr importjava io FileNotFound impo

文章来源:

java实现可压缩或解压缩WAR文件

package utils;

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()

*/

public class WarUtils {

public static void unzip(String warPath, String unzipPath) {

File warFile = new File(warPath);

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(“不支持的压缩格式”);

}

}

}

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

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

(0)
上一篇 2026年3月16日 下午7:07
下一篇 2026年3月16日 下午7:07


相关推荐

  • git服务器搭建_自建服务器

    git服务器搭建_自建服务器在远程仓库一节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7×24小时开机并交换大家的修改。GitHub就是一个免费托管开源代码的远程仓库。但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用。搭建Git服务器需要准备一台运行Linux的机器,强烈推荐用Ubuntu或Debian,这样,通过几条简单的apt命令就可以完成安装。假设你已经有sudo权限的用户账号,下面,正式开始安装。第..

    2026年4月16日
    4
  • 反锐化掩模

    反锐化掩模英文 unsharpmaski 中文 反锐化掩模法 nbsp nbsp nbsp nbsp 将原图像通过反锐化掩模进行模糊预处理 相当于采用低通滤波 后与原图逐点做差值运算 然后乘上一个修正因子再与原图求和 以达到提高图像中高频成分 增强图像轮廓的目的 nbsp nbsp nbsp nbsp nbsp 反锐化掩模技术最早是应用于摄影技术中 以增强图像的边缘和细节 光学上的操作方法是将聚焦的正片和散焦的负片在底片上进行叠加

    2026年3月16日
    2
  • 【Python】绘制热力图seaborn.heatmap,cmap设置颜色的参数

    【Python】绘制热力图seaborn.heatmap,cmap设置颜色的参数1 参数详解 seaborn heatmapseabo heatmap data vmin None vmax None cmap None center None robust False annot None fmt 2g annotkws None linewidths 0 linecolor white cbar True cbarkws No

    2026年3月19日
    3
  • linux安装lib包_linux生成静态库

    linux安装lib包_linux生成静态库前几天手里的智能锁项目,收到产品的建议(命令)说,就是人脸识别成功的时候,不要只显示摄像头捕捉到的图像,要弄个酷炫一点的背景,背景里图片中间有个圆圈,人脸就放到圆圈里也就是类似这样。。当然,这是我思考了好几个小时的结果,开始想不明白要怎么实现,其实想通了也很简单,三个步骤A把背景图像的RGB读出来out_bufB把摄像头采集到的图像读出来(分辨率和背…

    2025年6月19日
    5
  • 学java还是python哪个就业好_JAVA和Python哪个好就业?

    学java还是python哪个就业好_JAVA和Python哪个好就业?Python和Java是现在最火的两种编程语言,Python和Java的就业前景都很好,具体选择哪一个要看你自身对哪种编程语言更感兴趣。Python的就业方向和前景学习Python以后可以从事数据分析工作,无论是什么行业,做数据分析的人似乎都离不开Python,因为Python可以帮助他们提高工作效率。也可以从事网络编程工作,Python可以非常方便的完成网络编程的工作,提供了众多的解决方案和模块…

    2022年7月8日
    23
  • pycharm快捷键、常用设置、配置管理「建议收藏」

    pycharm快捷键、常用设置、配置管理「建议收藏」http://blog.csdn.net/pipisorry/article/details/39909057本博客一直在同步更新中!内容包含:pycharm学习技巧Learningtips、PyCharm3.0默认快捷键(翻译的)、pycharm常用设置、pycharm环境和路径配置、Pycharm实用拓展功能:pycharm中清除已编译.pyc中间文件、python2转python…

    2022年6月14日
    53

发表回复

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

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