`
ziye520
  • 浏览: 13392 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java 解析压缩文件-7z

    博客分类:
  • Java
阅读更多
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-Convert-Java.7z

    HEIC(High Efficiency Image Format)是一种现代的图像文件格式,由国际电报电话咨询委员会(ITU-T)和运动图像专家组(MPEG)联合制定,它提供了比传统的JPEG更高的压缩效率和更好的图像质量。这种格式在iOS设备上...

    7z极限压缩gradle-4.5-all.7z(压缩比50%)

    总的来说,"7z极限压缩gradle-4.5-all.7z"这个文件不仅体现了7z压缩工具在数据压缩领域的强大实力,同时也让我们看到了Gradle 4.5版本在项目构建自动化上的卓越表现。无论是为了节省存储空间,还是为了提高开发效率...

    7z解压缩java代码+工具

    最后,`Tar7zGzUtils.java` 文件很可能包含了自定义的Java类,用于处理tar、7z和gz格式的文件解压缩。此类通常会封装Apache Commons Compress和可能的其他库的API,提供一个更友好的接口,让其他部分的代码更容易...

    java解压7z用到的jar及解压方法

    在Java编程环境中,有时我们需要处理压缩文件,特别是7z格式的文件。7z是一种高效的压缩格式,具有较高的压缩率和广泛的应用。为了在Java中实现7z文件的解压功能,我们通常会依赖第三方库,这里提到的是...

    java-jlha.zip-用于解、压缩lzh格式文件

    由于LZH格式相对较老,现代的压缩格式如ZIP、RAR和7Z在压缩效率和特性上通常更胜一筹,但LZH在某些特定场景(如兼容旧软件、处理小文件或对速度有要求的情况)仍具有一定的价值。因此,了解和掌握如何使用Java-JLHA...

    Java解压缩文件,尤其对于Rar5.0版本的解压实现.zip

    沙漏哦2022-09-16 16:00:57原证Java解压缩文件,尤其对于Rar5.0版本的解压实现 项目描述 junrar已经不再支持Rar5版本的压缩文件。sevenzipjbinding对于Rar5压缩包的解压是调用本地7z软件进行解压的,如果本机环境...

    Java通用解压代码(RAR5,Zip,7Z)

    在Java编程环境中,解压不同类型的压缩文件,如RAR5、Zip和7z,是一项常见的任务。为了实现这一功能,我们需要使用特定的库,因为Java标准库并不直接支持RAR5和7z格式。这里我们将详细探讨如何使用Java来处理这些...

    Java中文件的压缩处理-Java教程共2页.pdf.zi

    在Java编程语言中,文件的压缩处理是一项常用的操作,它涉及到如何将一组文件或目录打包成一个单一的压缩文件,以便于存储、传输或者备份。Java提供了多种库来支持这项功能,其中Java PDFBox是一个专注于处理PDF文档...

    Java中压缩与解压--中文文件名乱码解决办法

    在Java中处理文件的压缩与解压时,经常会遇到中文文件名出现乱码的问题。这个问题主要源于Java中默认使用的编码方式与实际文件名编码不一致,尤其是在Windows系统下,文件名通常采用GB2312或GBK编码,而Java中的`...

    java解压缩文件

    Java解压缩文件是Java开发中常见的一项操作,特别是在处理数据传输、软件安装包或资源包时。本篇文章将深入探讨如何使用Java进行文件的解压缩,以及相关工具和源码的使用。 首先,Java标准库提供了`java.util.zip`...

    mysql-connector-java-5.1.40.tar.gz

    - `-z` 表示使用gzip解压缩 - `-x` 表示解压 - `-v` 提供详细输出,显示解压过程 - `-f` 指定要解压的文件名 执行此命令后,会得到一个解压后的目录,里面包含了MySQL Connector/J的所有文件,包括JAR文件,如`...

    [免费]Servlet3.1规范-使用7z压缩的文件

    6. **文件上传改进**:新的Multipart解析器允许处理大文件上传,同时支持进度监听和取消操作,提高了用户体验。 7. **URL重写**:Servlet 3.1增加了URL重写能力,允许在URL中添加自定义信息,如会话ID或跟踪参数,...

    java解压缩ZIP文件

    ### Java解压缩ZIP文件:深度解析与实践 #### 核心知识点概览: - **Java I/O与网络数据流统一接口**:Java的1.1版本提供了统一的接口来处理I/O数据流与网络数据流,这使得数据的压缩、传输和解压缩变得简单而高效...

    Java文件解压缩实现

    ### Java文件解压缩实现 #### 知识点概述 本文将详细介绍如何使用Java语言实现文件解压缩的功能。解压缩操作是计算机系统中的常见需求之一,尤其是在处理大量数据或需要从压缩包中提取文件的情况下。本示例代码...

    java class jar 文件查看器.7z

    这里提到的"java class jar 文件查看器"可能是一个可以解压7z格式文件并查看其中Java类和JAR内容的工具。这类工具可以帮助开发者分析代码、查找错误、反编译Class文件,甚至可以查看JAR内的元数据和资源文件。 常见...

    开源Winzip压缩工具Java版源码.7z

    开源Winzip压缩工具Java版源码是一个非常有价值的资源,它为开发者提供了在Java环境中实现文件压缩功能的机会。这个工具的灵感来源于经典的Winzip程序,它是一个广泛使用的Windows平台上的文件压缩与解压缩软件。...

    jdk-7u79-linux-x64.7z

    在这个特定的压缩文件"jdk-7u79-linux-x64.7z"中,我们讨论的是针对Linux操作系统的64位版本的JDK 7更新79(Update 79)。这个版本的JDK对于Java开发者来说非常重要,因为它包含了编译器、调试器、Java运行时环境...

    JAVA文件压缩与解压缩实践(源代码+论文).rar

    以下是对这个"JAVA文件压缩与解压缩实践"项目的详细解析。 首先,我们要了解Java中的压缩库,最常用的是Java标准库中的`java.util.zip`包,它提供了对ZIP和GZIPOutputStream等类的支持。在压缩文件时,我们可以利用...

    jdk-8u211-linux-x64.tar.gz.7z

    - ".7z":这个文件还使用了7-Zip软件进行额外的压缩,7-Zip是一款开源且强大的压缩软件,能提供比gzip更高的压缩比。 下载这个文件前,用户需要注意他们的系统是否为64位Linux,并且确保他们需要的是JDK 8版本。...

    android-sdk-windows.7z

    本文将详细解析"android-sdk-windows.7z"这个压缩包文件,帮助读者全面了解Android SDK在Windows平台上的使用。 首先,"android-sdk-windows.7z"是一个专门为Windows系统设计的Android SDK压缩包,采用了7-Zip格式...

Global site tag (gtag.js) - Google Analytics