package impl; import inter.AbstractUnCompressService; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.zip.GZIPInputStream; import org.apache.tools.tar.TarEntry; import org.apache.tools.tar.TarInputStream; /** * This file is used to uncompress gz compress file * @author Jacky.Dong * */ public class GzUnCompressServiceImpl extends AbstractUnCompressService { private static final String SUFFIX_TAR_GZ = ".tar.gz"; @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 (outputDir == null) { outputDir = inputFile.getPath().replace(SUFFIX_TAR_GZ, "") + File.separator; } try { // create a gzip input stream TarInputStream tarIn = new TarInputStream(new GZIPInputStream( new FileInputStream(inputFile))); TarEntry entry = null; while ((entry = tarIn.getNextEntry()) != null) { // if entry is a directory ,we should create a new directory if (entry.isDirectory()) { createDirectory(outputDir, entry.getName());// 创建空目录 } else { // if entry is a file ,we should add this file to related // folder and write content to the file 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 = tarIn.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()); } } }
相关推荐
一个Java随书实例:用GZIP压缩解压文件,从源文件得到文件输入流,得到目标文件输出流,得到压缩输出流,设定读入缓冲区尺寸,弹出文件选择器,并判断是否点击了打开按钮,判断事件来自于哪个按钮,用于选择解压和...
在Java中解析这种类型的文件,通常需要两个步骤:首先解压gzip,然后解包tar。这里我们将详细探讨两种不同的方法来实现这个过程。 方法一:使用Apache Commons Compress库 Apache Commons Compress库是Java社区...
ame()); tOut.putArchiveEntry(tarEntry);...通过引入该库,我们可以轻松地在 Java 程序中实现文件和文件夹的压缩与解压缩功能。在实际开发中,注意错误处理、资源管理以及安全性等方面,以确保程序的健壮性和安全性。
Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...
总之,Java的GZIP压缩技术在Web开发中扮演着重要角色,能够有效地减小数据传输量,提升用户体验。通过理解和应用这些知识,开发者可以构建更高效、更快速的网络服务。同时,深入源码有助于我们掌握更底层的细节,为...
对于解压缩GZIP文件,我们需要使用`GZIPInputStream`包装`FileInputStream`。以下是解压缩文件的Java代码示例: ```java import java.io.*; import java.util.zip.*; public class GzipDecompress { public ...
Java解压缩文件是Java开发中常见的一项操作,特别是在处理数据传输、软件安装包或资源包时。本篇文章将深入探讨如何使用Java进行文件的解压缩,以及相关工具和源码的使用。 首先,Java标准库提供了`java.util.zip`...
“eclipse-java-2021-09-R-linux-gtk-x86_64.tar.gz”是一个归档文件,采用tar格式打包,并使用gzip进行压缩。在Linux中,可以使用`tar`命令解压,如`tar -zxvf eclipse-java-2021-09-R-linux-gtk-x86_64.tar.gz`,...
Java解析Tar文档主要涉及到的是对tar格式的归档文件进行读取和操作的技术。Tar是一种在Unix和类Unix系统中广泛使用的打包工具,它可以将多个文件和目录打包成一个单一的归档文件,便于存储、备份和传输。在Java中...
Linux中的`tar`命令用于处理归档文件,而`.gz`表示文件被gzip压缩了。解压缩的命令通常是: ```bash tar -zxvf mysql-connector-java-5.1.40.tar.gz ``` 这条命令的参数解析如下: - `-z` 表示使用gzip解压缩 - `-...
`.tar.gz`文件实际上是先用tar打包,再用gzip压缩,因此在Java中解析这种文件需要两个步骤:解压(gzip)和解包(tar)。 下面我们将深入探讨如何在Java中解析.tar.gz文件,并涉及相关的Java API和技术。 1. **...
Java文件压缩与解压缩是计算机科学中的一个常见任务,尤其在数据存储、传输和备份等领域。本实践项目涉及到了使用Java编程语言实现文件的压缩和解压缩功能,这对于理解和掌握文件处理技术至关重要。在此,我们将深入...
在计算机科学领域,Java语言广泛应用于各种软件开发,包括文件处理和数据压缩。这个毕业设计项目专注于使用Java实现文件的压缩与解压缩功能,对于学习Java编程和理解数据压缩原理的学生来说,是一个非常实用的实践...
Java文件压缩与解压缩是Java开发...以上是对"JAVA文件压缩与解压缩实践(源代码+论文)"的详细解析,希望对你的学习和项目开发有所帮助。通过理解和应用这些知识,你将能够熟练地处理Java环境下的文件压缩和解压缩任务。
本实例聚焦于“基于Java的数据压缩与传输”,通过源码解析,我们可以深入理解Java如何实现这两个关键功能。 首先,数据压缩是提高存储效率和减少网络传输时间的重要手段。在Java中,我们可以使用内置的`java.util....
1. 压缩与解压缩:为了减少传输时间,MammothCopy可能使用了GZIP或Zip等压缩算法,先压缩文件再进行传输,提高传输效率。 2. 断点续传:对于大文件,断点续传功能是必要的,可以避免因网络中断而需要重新传输整个...
【标题】:仿zip压缩软件的java代码 在Java编程中,实现自定义的压缩...通过阅读和分析这些代码,你可以了解到如何在Java中实现文件的压缩、解压缩、分割以及进度反馈,同时也能掌握Swing框架下界面设计的基本原理。
分析这个文件可以帮助你深入理解Netty中的对象传输和gzip压缩的实际应用。 通过这样的示例,你可以学习到如何利用Netty的灵活性和高效性,结合gzip压缩来优化网络通信。这在大数据传输、实时通信系统或者分布式服务...
本文将详细解析如何利用Java实现压缩文件的功能,并深入探讨相关的知识点。 首先,`java.util.zip`包提供了对ZIP文件格式的支持。在Java中,`ZipOutputStream`是用于创建ZIP文件的主要类,它继承自`...
Java文件压缩与解压缩是软件开发中的一个常见需求,尤其在大数据传输、存储优化和程序打包等场景下显得尤为重要。本项目围绕这个主题展开,旨在为毕业生提供一个实用的编程实践,通过Java语言实现文件的压缩和解压缩...