package impl; import inter.AbstractUnCompressService; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import org.apache.commons.compress.archivers.sevenz.SevenZArchiveEntry; import org.apache.commons.compress.archivers.sevenz.SevenZFile; /** * This file is used to uncompress 7z file * * @author Jacky.Dong * */ public class SevenZUnCompressServiceImpl extends AbstractUnCompressService { private static final String SUFFIX_SEVENZ = ".7z"; @Override public void unCompressFolder(String folder) { // TODO Auto-generated method stub } @Override public void unCompressFile(String inputFilePath, String outputDir) throws IOException { File inputFile = new File(inputFilePath); // if output directory is not specify,we will use input file parent path // + // compress file name as output file path if (outputDir == null) { outputDir = inputFile.getPath().replace(SUFFIX_SEVENZ, "") + File.separator; } try { // create 7z input stream SevenZFile zFile = new SevenZFile(inputFile); SevenZArchiveEntry entry = null; while ((entry = zFile.getNextEntry()) != null) { // once entry is a directory we will create a new directory if (entry.isDirectory()) { createDirectory(outputDir, entry.getName()); } else { File tmpFile = new File(outputDir + File.separator + entry.getName()); createDirectory(tmpFile.getParent() + File.separator, null); OutputStream out = null; try { out = new FileOutputStream(tmpFile); int length = 0; byte[] b = new byte[BUFFEREDSIZE]; while ((length = zFile.read(b)) != -1) { out.write(b, 0, length); } } catch (IOException ex) { throw ex; } finally { if (out != null) out.close(); } } } } catch (Exception ex) { System.err.println(ex.toString()); } } }
相关推荐
HEIC(High Efficiency Image Format)是一种现代的图像文件格式,由国际电报电话咨询委员会(ITU-T)和运动图像专家组(MPEG)联合制定,它提供了比传统的JPEG更高的压缩效率和更好的图像质量。这种格式在iOS设备上...
总的来说,"7z极限压缩gradle-4.5-all.7z"这个文件不仅体现了7z压缩工具在数据压缩领域的强大实力,同时也让我们看到了Gradle 4.5版本在项目构建自动化上的卓越表现。无论是为了节省存储空间,还是为了提高开发效率...
最后,`Tar7zGzUtils.java` 文件很可能包含了自定义的Java类,用于处理tar、7z和gz格式的文件解压缩。此类通常会封装Apache Commons Compress和可能的其他库的API,提供一个更友好的接口,让其他部分的代码更容易...
在Java编程环境中,有时我们需要处理压缩文件,特别是7z格式的文件。7z是一种高效的压缩格式,具有较高的压缩率和广泛的应用。为了在Java中实现7z文件的解压功能,我们通常会依赖第三方库,这里提到的是...
由于LZH格式相对较老,现代的压缩格式如ZIP、RAR和7Z在压缩效率和特性上通常更胜一筹,但LZH在某些特定场景(如兼容旧软件、处理小文件或对速度有要求的情况)仍具有一定的价值。因此,了解和掌握如何使用Java-JLHA...
沙漏哦2022-09-16 16:00:57原证Java解压缩文件,尤其对于Rar5.0版本的解压实现 项目描述 junrar已经不再支持Rar5版本的压缩文件。sevenzipjbinding对于Rar5压缩包的解压是调用本地7z软件进行解压的,如果本机环境...
在Java编程环境中,解压不同类型的压缩文件,如RAR5、Zip和7z,是一项常见的任务。为了实现这一功能,我们需要使用特定的库,因为Java标准库并不直接支持RAR5和7z格式。这里我们将详细探讨如何使用Java来处理这些...
在Java编程语言中,文件的压缩处理是一项常用的操作,它涉及到如何将一组文件或目录打包成一个单一的压缩文件,以便于存储、传输或者备份。Java提供了多种库来支持这项功能,其中Java PDFBox是一个专注于处理PDF文档...
在Java中处理文件的压缩与解压时,经常会遇到中文文件名出现乱码的问题。这个问题主要源于Java中默认使用的编码方式与实际文件名编码不一致,尤其是在Windows系统下,文件名通常采用GB2312或GBK编码,而Java中的`...
Java解压缩文件是Java开发中常见的一项操作,特别是在处理数据传输、软件安装包或资源包时。本篇文章将深入探讨如何使用Java进行文件的解压缩,以及相关工具和源码的使用。 首先,Java标准库提供了`java.util.zip`...
- `-z` 表示使用gzip解压缩 - `-x` 表示解压 - `-v` 提供详细输出,显示解压过程 - `-f` 指定要解压的文件名 执行此命令后,会得到一个解压后的目录,里面包含了MySQL Connector/J的所有文件,包括JAR文件,如`...
6. **文件上传改进**:新的Multipart解析器允许处理大文件上传,同时支持进度监听和取消操作,提高了用户体验。 7. **URL重写**:Servlet 3.1增加了URL重写能力,允许在URL中添加自定义信息,如会话ID或跟踪参数,...
### Java解压缩ZIP文件:深度解析与实践 #### 核心知识点概览: - **Java I/O与网络数据流统一接口**:Java的1.1版本提供了统一的接口来处理I/O数据流与网络数据流,这使得数据的压缩、传输和解压缩变得简单而高效...
### Java文件解压缩实现 #### 知识点概述 本文将详细介绍如何使用Java语言实现文件解压缩的功能。解压缩操作是计算机系统中的常见需求之一,尤其是在处理大量数据或需要从压缩包中提取文件的情况下。本示例代码...
这里提到的"java class jar 文件查看器"可能是一个可以解压7z格式文件并查看其中Java类和JAR内容的工具。这类工具可以帮助开发者分析代码、查找错误、反编译Class文件,甚至可以查看JAR内的元数据和资源文件。 常见...
开源Winzip压缩工具Java版源码是一个非常有价值的资源,它为开发者提供了在Java环境中实现文件压缩功能的机会。这个工具的灵感来源于经典的Winzip程序,它是一个广泛使用的Windows平台上的文件压缩与解压缩软件。...
在这个特定的压缩文件"jdk-7u79-linux-x64.7z"中,我们讨论的是针对Linux操作系统的64位版本的JDK 7更新79(Update 79)。这个版本的JDK对于Java开发者来说非常重要,因为它包含了编译器、调试器、Java运行时环境...
以下是对这个"JAVA文件压缩与解压缩实践"项目的详细解析。 首先,我们要了解Java中的压缩库,最常用的是Java标准库中的`java.util.zip`包,它提供了对ZIP和GZIPOutputStream等类的支持。在压缩文件时,我们可以利用...
- ".7z":这个文件还使用了7-Zip软件进行额外的压缩,7-Zip是一款开源且强大的压缩软件,能提供比gzip更高的压缩比。 下载这个文件前,用户需要注意他们的系统是否为64位Linux,并且确保他们需要的是JDK 8版本。...
本文将详细解析"android-sdk-windows.7z"这个压缩包文件,帮助读者全面了解Android SDK在Windows平台上的使用。 首先,"android-sdk-windows.7z"是一个专门为Windows系统设计的Android SDK压缩包,采用了7-Zip格式...