import java.io.File;
import java.io.FileOutputStream;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.taskdefs.Expand;
import de.innosystec.unrar.Archive;
import de.innosystec.unrar.rarfile.FileHeader;
public class DeCompressUtil {
/**
* 解压zip格式压缩包
* 对应的是ant.jar
*/
private static void unzip(String sourceZip,String destDir) throws Exception{
try{
Project p = new Project();
Expand e = new Expand();
e.setProject(p);
e.setSrc(new File(sourceZip));
e.setOverwrite(false);
e.setDest(new File(destDir));
/*
ant下的zip工具默认压缩编码为UTF-8编码,
而winRAR软件压缩是用的windows默认的GBK或者GB2312编码
所以解压缩时要制定编码格式
*/
e.setEncoding("gbk");
e.execute();
}catch(Exception e){
throw e;
}
}
/**
* 解压rar格式压缩包。
* 对应的是java-unrar-0.3.jar,但是java-unrar-0.3.jar又会用到commons-logging-1.1.1.jar
*/
private static void unrar(String sourceRar,String destDir) throws Exception{
Archive a = null;
FileOutputStream fos = null;
try{
a = new Archive(new File(sourceRar));
FileHeader fh = a.nextFileHeader();
while(fh!=null){
if(!fh.isDirectory()){
//1 根据不同的操作系统拿到相应的 destDirName 和 destFileName
String compressFileName = fh.getFileNameString().trim();
String destFileName = "";
String destDirName = "";
//非windows系统
if(File.separator.equals("/")){
destFileName = destDir + compressFileName.replaceAll("\\\\", "/");
destDirName = destFileName.substring(0, destFileName.lastIndexOf("/"));
//windows系统
}else{
destFileName = destDir + compressFileName.replaceAll("/", "\\\\");
destDirName = destFileName.substring(0, destFileName.lastIndexOf("\\"));
}
//2创建文件夹
File dir = new File(destDirName);
if(!dir.exists()||!dir.isDirectory()){
dir.mkdirs();
}
//3解压缩文件
fos = new FileOutputStream(new File(destFileName));
a.extractFile(fh, fos);
fos.close();
fos = null;
}
fh = a.nextFileHeader();
}
a.close();
a = null;
}catch(Exception e){
throw e;
}finally{
if(fos!=null){
try{fos.close();fos=null;}catch(Exception e){e.printStackTrace();}
}
if(a!=null){
try{a.close();a=null;}catch(Exception e){e.printStackTrace();}
}
}
}
/**
* 解压缩
*/
public static void deCompress(String sourceFile,String destDir) throws Exception{
//保证文件夹路径最后是"/"或者"\"
char lastChar = destDir.charAt(destDir.length()-1);
if(lastChar!='/'&&lastChar!='\\'){
destDir += File.separator;
}
//根据类型,进行相应的解压缩
String type = sourceFile.substring(sourceFile.lastIndexOf(".")+1);
if(type.equals("zip")){
DeCompressUtil.unzip(sourceFile, destDir);
}else if(type.equals("rar")){
DeCompressUtil.unrar(sourceFile, destDir);
}else{
throw new Exception("只支持zip和rar格式的压缩包!");
}
}
}
相关推荐
高斯泼溅(Gaussian Splatting):3D建模的颠覆性革命
高斯泼溅(Gaussian Splatting):3D建模的颠覆性革命
用java解压zip文件
JAVA可以解压zip文件是因为ZIP文件的算法是开源的。但是RAR文件的算法确实不公开的啊。虽然我们可以用windows命令来解压RAR文件但是我发现他只能解压一次,而且比较慢,相当于在程序运行时又开始了一个进程来解压rar文件。后来我决定用ZIP文件。 代码如下: String filePath = this.getServlet().getServletContext() ...
微信小程序实现锚点效果 scroll-view的scroll-into-view属性
小程序中实现锚点效果,可以直接使用scroll-view的scroll-into-view属性就可以实现锚点效果,比较方便简单。那么需要用到scroll-view那些参数呢,下面具体讲讲:效果展示: wxml **注意:**viewid值是动态的,通过setData设置即可。js wxss......
java 万能解压zip工具类
项目中有需要解压zip包,但是网上搜了下,工具类过于局限,故整理一个万能的解压zip的工具类。 局限点:只支持解压
车载机器人终极解决方案:从功能叠加到生态融合的颠覆性变革
本文提出一种融合智能汽车与家居技术的车载机器人架构。其创新点包括:1)基于多模态传感器的拟人化硬件设计,实现声源定位误差<5°、体温检测精度±0.3℃;2)跨模态情感计算引擎,综合面部表情、心率等数据构建三维情绪模型;3)协议自适应中间件,支持小米、华为等多品牌智能家居设备即插即用;4)环境自适应舵机控制,-30℃环境下扭矩保持率达92.5%。测试数据显示,该方案使交互步骤减少60%,用户满意度提升58%,日均使用时长增加2.3倍,为"人-车-家"生态融合提供了可行技术路径。
华硕三频万兆分布式路由组网实战:从AiMesh 2.0到全屋Wi-Fi 6覆盖
Mesh组网是解决大户型Wi-Fi覆盖难题的主流方案,其核心原理是通过多个节点构建网状网络,实现设备间的无缝漫游。在技术层面,Wi-Fi 6标准、三频设计(包括专属回程频段)和有线回程等技术,共同提升了网络的带宽、稳定性和抗干扰能力。这些技术的工程价值在于,能够为多设备并发、高带宽应用(如4K/8K流媒体、在线游戏、内网文件高速传输)提供可靠支撑。具体到应用场景,例如利用华硕AiMesh 2.0系统,配合三频万兆分布式路由器,可以实现智能的设备连接与负载均衡。通过合理规划节点位置、优先采用有线回程,并进行Q
java解压zip压缩包
java 解压压缩包,java 实现解压 zip 压缩包。坐在旁边的小伙伴问我怎么用 java 将服务器上的压缩文件解压出来,我索引给他写了个 demo ,也顺手记录一下。
基于改进YOLO11的天际线检测算法:复杂光照与恶劣天气适配实战
针对特定任务的YOLO改进,不应追求通用SOTA,而应深入理解任务的物理退化机理。Retinex对应光照模型、FAD对应散射模型、Wise-IoU对应边界不确定性——每个改进都有明确的物理解释,而非盲目的模块堆叠。时序一致性:引入轻量级RNN/Transformer模块利用视频帧间信息补偿单帧退化;多模态融合:结合红外/NIR波段穿透雾霾,与可见光特征在FAD-Neck中交叉注意力融合;自监督预训练:在海量无标注天际线视频上用MAE预训练Backbone,缓解恶劣天气标注稀缺问题。
用java解压缩zip和rar的工具类
[code="java"]package decompress; import java.io.File; import java.io.FileOutputStream; import org.apache.tools.ant.Project; import org.apache.tools.ant.taskdefs.Expand; import de.innosystec...
面试真题集(十六):TensorRT基础
TensorRT面试真题解析:从模型优化到推理部署 本文精选了14道TensorRT面试题,涵盖选择题、简答题和场景题,深度考察推理工程师对TensorRT核心技术的理解。内容聚焦三个关键维度: 基础概念 FP16推理中Softmax层为何需保持FP32(数值稳定性) INT8校准原理(EntropyCalibrator2的鲁棒性优势) Plugin V3接口的构建/运行分离设计 性能优化 Conv-BN-ReLU融合减少40-60%延迟的关键机制(访存优化) 动态Shape配置策略(min/opt/max
高通Camx功能feature分析之二:remosaic流程
本文介绍了Remosaic技术及其在图像处理中的应用。Remosaic是将4cell1像素排布还原为普通Bayer结构的过程,分为硬件和软件两种实现方式。文章详细解析了Remosaic流程,包括配流情况、Feature选择、初始化过程,以及触发拍照的完整流程。重点分析了从普通预览切换到全尺寸拍照的关键步骤:激活全尺寸RDI会话、生成请求、等待就绪、唤醒离线线程和重启预览。通过代码层面的分析,揭示了Remosaic技术如何实现高分辨率图像还原,同时说明了该过程中可能出现的预览定屏现象及其原因。
Java压缩文件
主要是zip压缩和解压缩过程中的IO流
计算机视觉与深度学习 | 2024年至2025年图像匹配算法总结(原理,公式,代码,开源链接)
以上总结覆盖了当前主流和前沿技术,实际选择需结合具体场景(速度/精度/资源限制)评估。
JAVA使用 java-unrar-0.3.jar 解压rar,并且解决中文乱码
需要引入java-unrar-0.3.jar 和 commons-logging-1.1.1.jar
RU DOS版、EFI版32bit/64bit BIOS常用工具
DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。
jdk-8u144-linux-x64.tar.gz.
该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包
java unrar 乱码_JAVA使用 java-unrar-0.3.jar 解压rar,并且解决中文乱码
有个项目需要解压rar,上网搜索一下大家都在用 java-unrar-0.3.jar ,于是写了一个util方法解压rarpublic static void unrar(String srcPath,String unrarPath,boolean incRarDir) throws RarException, IOException{unrar(new File(srcPath), unr...
SIMATIC S7-1200, S7-1500 PID 控制[手册]
SIMATIC S7-1200, S7-1500 PID 控制[手册]
java-unrar-0.3.jar_unrar.jar解压缩rar文件
依赖的jar包java-unrar-0.3.jar在maven仓库中,http://mvnrepository.com/artifact/com.github.junrar/junrar/0.7import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import de.innosystec.un...
复分析 阿尔福斯(Ahlfors) 第三版答案 英文
答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案
java-unrar-0.3.jar_java-unrar-0.3.jar解压
import java.io.File;import java.io.FileOutputStream;import org.apache.tools.ant.Project;import org.apache.tools.ant.taskdefs.Expand;import de.innosystec.unrar.Archive;import de.innosystec.unrar.rarfil...
unrar java_JAVA使用 java-unrar-0.3.jar 解压rar,并且解决中文乱码
需要引入java-unrar-0.3.jar 和 commons-logging-1.1.1.jarpackage com.test;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import de.innosystec.unrar.Archive;import de.innosyste...
java unrar.jar下载_unrar.jar解压缩rar文件
依赖的jar包java-unrar-0.3.jar在maven仓库中,http://mvnrepository.com/artifact/com.github.junrar/junrar/0.7import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import de.innosystec.un...
Java解压缩-Rar文件
使用jar包:java-unrar-0.3.jar 本文是一个Java
java解压rar以及zip
/** * 解压缩zip包 * * @param zipFilePath zip文件路径 * @param targetPath 解压缩到的位置,如果为null或空字符串则默认解压缩到跟zip包同目录跟zip包同名的文件夹下 * @throws IOException * @author yayagepei * @date 2008-9-28 */
java解压rar文件
package test; import java.io.File; import java.io.FileOutputStream; import de.innosystec.unrar.Archive; import de.innosystec.unrar.rarfile.FileHeader; public class UnRarFile { ...
java方法解压rar
package com.ssm.util; import java.io.File; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; import d...
java解压rar.zip
/** * 解压zip格式压缩包 * 对应的是ant.jar */ private static void unzip(String sourceZip,String destDir) throws Exception{ try{ Project p = new Proje
5149



被折叠的 条评论
为什么被折叠?



