package com.huawei.support.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.InputStream;
import java.io.OutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
public class Zip
{
/**
* 将指定目录的内容压缩成zip文件
* @param baseDir 需压缩的目录
* @param zipfile 压缩后的zip文件名
* @throws FileNotFoundException
*/
public static void createZipFile(String baseDir, String zipfile)
throws FileNotFoundException
{
if (StringUtil.isNullOrEmpty(baseDir)
|| StringUtil.isNullOrEmpty(zipfile))
{
return;
}
File curFile = new File(baseDir);
if (null == curFile || 0 == curFile.listFiles().length)
{
return;
}
// 创建写入压缩文件输出流
ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipfile));
writeZip(baseDir, baseDir, zos);
try
{
zos.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
/**
* 将指定的压缩文件解压到指定目录
* @param zipfile 压缩文件
* @param unZipDir 解压目录
*/
public static void unZipFile(String zipfile, String unZipDir)
{
InputStream in = null;
final File zipFile = new File(zipfile);
if (!zipFile.exists())
{
System.out.println("该jar文件不存在:" + zipfile);
return;
}
try
{
in = new FileInputStream(zipFile);
ZipInputStream zipStream = new ZipInputStream(in);
ZipEntry zipEntry = zipStream.getNextEntry();
while (null != zipEntry)
{
zipEntry = createFileOrFolderByZipEntry(unZipDir,
zipEntry,
zipStream);
}// while
}
catch (final FileNotFoundException e)
{
System.err.println(e);
}
catch (final IOException e)
{
System.err.println(e);
}
finally
{
try
{
in.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
分享到:
相关推荐
在IT行业中,文件压缩与解压缩是日常工作中常见的操作,特别是在数据传输、存储优化和软件分发等领域。这里我们主要探讨的是一个简单的工具类,它支持zip、rar、tar等多种格式的压缩和解压缩功能,并且经过实际测试...
在Java编程语言中,文件的压缩与解压缩是常见的数据处理操作,特别是在数据传输、存储优化和备份场景中。本实践项目围绕这个主题展开,包括源代码和相关的论文,为学习者提供了深入理解和应用Java压缩库的机会。以下...
在给定的标题“C++ 压缩解压缩库”中,我们可以推断这是一个针对C++语言的库,专注于文件或数据的压缩与解压缩功能。描述提到这是为VS2012版本编译的,意味着它可能使用了Visual Studio 2012的编译环境,并且库已经...
哈夫曼压缩与解压缩源码.zip哈夫曼压缩与解压缩源码.zip哈夫曼压缩与解压缩源码.zip哈夫曼压缩与解压缩源码.zip哈夫曼压缩与解压缩源码.zip哈夫曼压缩与解压缩源码.zip哈夫曼压缩与解压缩源码.zip哈夫曼压缩与解压缩...
赫夫曼编码是一种高效的数据压缩算法,由美国...通过以上步骤,我们可以使用C语言实现赫夫曼压缩与解压缩。需要注意的是,实际编程时,还需要考虑错误处理、内存管理以及效率优化等问题,以确保程序的稳定性和性能。
实际的PB压缩解压缩实现可能根据具体需求和设计有所不同,例如可能使用了特定的压缩库(如zlib或libarchive),或者采用了自定义的压缩算法。要深入了解这个话题,最好能够查看和分析提供的源代码。
在IT领域,压缩和解压缩是数据存储和传输过程...总结,压缩与解压缩是信息技术中不可或缺的部分,涉及多种算法和格式。无论是从理论学习还是实践操作,都需要深入理解和掌握这一领域的知识,以便在实际工作中灵活运用。
在IT领域,熟悉Zip的压缩与解压缩操作是基础技能之一。 ### 1. 压缩原理 Zip文件格式采用了一种叫做DEFLATE的混合压缩方法,结合了LZ77(一种滑动窗口的无损数据压缩算法)和霍夫曼编码。DEFLATE首先通过查找重复...
在C#环境下实现哈夫曼编码的压缩与解压缩,可以帮助我们理解这一算法的工作原理,同时为文件处理提供了一个实用工具。 哈夫曼编码的核心思想是构建一棵哈夫曼树(Huffman Tree),这是一棵带权路径长度最短的二叉树...
这类工具类通常封装了与解压缩相关的复杂操作,使得开发者无需深入了解底层细节,即可完成文件的解压任务。 描述中的“java解压文件工具类、放入工程直接可用、案例、web开发、unziputil”进一步明确了这个工具类的...
本示例主要探讨的是如何使用C#编程语言实现文件和目录的压缩与解压缩功能。C#,作为微软开发的一种面向对象的编程语言,提供了丰富的库和API来处理这种任务。 首先,我们要知道压缩的主要目的是减小文件或数据的...
"批量压缩解压缩.rar" 提供了这样的功能,它允许用户一次性处理多个文件或整个目录,极大地提高了效率。这一工具对于那些需要频繁处理大量文件的IT专业人员来说尤其实用,比如开发人员、系统管理员和数据分析师。 ...
在日常的文件管理和数据传输过程中,压缩与解压缩是非常重要的操作之一。尤其在Linux环境下,掌握这些命令对于提高工作效率有着不可忽视的作用。本文将详细介绍Ubuntu系统中常用的压缩与解压缩命令及其应用场景,...
本篇文章主要探讨的是针对BMP图像的压缩与解压缩算法,通过分析BMP文件格式来理解如何实现这一过程。 BMP(Bitmap)是一种常见的位图文件格式,其文件结构包含四个主要部分:位图文件头、位图信息头、颜色表和位图...
### Linux下的压缩与解压缩详解 #### 一、概述 在Linux系统中,压缩与解压缩功能对于数据管理和传输非常重要。对于初学者来说,掌握基本的压缩与解压缩技巧可以帮助他们更高效地管理文件和目录。本文将详细介绍...
2. **压缩与解压缩**:压缩文件是为了减小文件大小,节省存储空间和加快传输速度。解压缩则是将压缩后的文件恢复为原始状态。PHP提供了多种处理压缩和解压缩的函数或扩展。 3. **zip**:zip是一种常用的文件压缩...
JAVA文件压缩与解压缩实践(源代码+论文) JAVA文件压缩与解压缩实践(源代码+论文) JAVA文件压缩与解压缩实践(源代码+论文) JAVA文件压缩与解压缩实践(源代码+论文) JAVA文件压缩与解压缩实践(源代码+论文) JAVA文件...