`
wlh269
  • 浏览: 453258 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ZIP 压缩 和解压缩

    博客分类:
  • J2SE
阅读更多
package com.socket.zip.util;

import java.util.*;
import java.util.zip.*;
import java.io.*;

public class ZipUtil 
{
	public void zip(String zipFileName,String inputFile)throws Exception{
		zip(zipFileName,new File(inputFile));
	}
	public void zip(String zipFileName,File inputFile)throws Exception{
		ZipOutputStream out=new ZipOutputStream(new FileOutputStream(zipFileName));
		zip(out,inputFile,"");
		System.out.println("zip done");
		out.close();
	}

	public void unzip(String zipFileName,String outputDirectory)throws Exception{
		ZipInputStream in=new ZipInputStream(new FileInputStream(zipFileName));
		ZipEntry z;
		while ((z=in.getNextEntry() )!= null)
		{
			System.out.println("unziping "+z.getName());
			if (z.isDirectory())
			{
				String name=z.getName();
				name=name.substring(0,name.length()-1);
				File f=new File(outputDirectory+File.separator+name);
				f.mkdir();
				System.out.println("mkdir "+outputDirectory+File.separator+name);
			}
			else{
				File f=new File(outputDirectory+File.separator+z.getName());
				f.createNewFile();
				FileOutputStream out=new FileOutputStream(f);
				int b;
				while ((b=in.read()) != -1)
					out.write(b);
				out.close();
			}
		}

		in.close();
	}

	public void zip(ZipOutputStream out,File f,String base)throws Exception{
		System.out.println("Zipping  "+f.getName());
		if (f.isDirectory())
		{
			File[] fl=f.listFiles();
			out.putNextEntry(new ZipEntry(base+"/"));
			base=base.length()==0?"":base+"/";
			for (int i=0;i<fl.length ;i++ )
			{
				zip(out,fl[i],base+fl[i].getName());
			}
		}
		else
		{
			out.putNextEntry(new ZipEntry(base));
			FileInputStream in=new FileInputStream(f);
			int b;
			while ((b=in.read()) != -1)
				out.write(b);
			in.close();
		}

	}
	
	
	public static void main(String[] args) 
	{
		try{
		ZipUtil t=new ZipUtil();
		t.zip("D:\\wulihai\\SocketTrans.zip","D:\\wulihai\\SocketTrans");
		t.unzip("D:\\wulihai\\SocketTrans.zip","D:\\wulihai\\开发手册");
		}
		catch(Exception e){e.printStackTrace(System.out);}
	}
}
分享到:
评论

相关推荐

    Swift 实现 Zip 压缩和解压缩的库.zip

    Swift 语言在开发 iOS、macOS、watchOS 和 tvOS 应用时提供了丰富的功能,但原生标准库并未包含对 ZIP 压缩和解压缩的直接支持。因此,开发者通常会借助第三方库来实现这一功能。"Swift 实现 Zip 压缩和解压缩的库....

    swift-Swift实现Zip压缩和解压缩的库

    `swift-Swift实现Zip压缩和解压缩的库`这个主题就是关于如何在Swift中利用第三方库来执行这些任务。 在Swift中,有一个名为`Zip`的开源库,由开发者Marmelroy维护。这个库提供了简单易用的API,使得在Swift项目中...

    wince下ZIP压缩和解压缩的源码

    在Windows CE(简称WinCE)环境下,开发人员经常需要处理ZIP文件的压缩和解压缩操作。ZIP是一种广泛使用的文件归档格式,它允许将多个文件和目录打包成一个单一的可传输或存储的文件。本篇文章将深入探讨在WinCE系统...

    使用ant实现zip压缩和解压缩 一

    本篇文章将深入探讨如何使用Ant实现ZIP文件的压缩和解压缩。 首先,Ant是基于XML的,因此我们需要在项目中创建一个名为`build.xml`的配置文件,这个文件包含了所有构建任务的定义。对于ZIP压缩,我们可以使用`&lt;zip&gt;...

    ava支持的zip压缩和解压缩

    zip扮演着归档和压缩两个角色;gzip并不将文件归档,仅只是对单个文件进行压缩,所以,在UNIX平台上,命令tar通常用来创建一个档案文件,然后命令gzip来将档案文件压缩。 Java I/O类库还收录了一些能读写压缩格式流...

    一个基于C#实现的数据信息ZIP压缩与解压包装类源码及例子程序

    对于C#开发者来说,理解如何利用.NET框架中的库来实现ZIP压缩和解压缩功能是十分重要的。本篇文章将详细探讨基于C#实现的ZIP压缩与解压缩包装类,并提供相关的源码和实例程序。 ZIP是一种广泛使用的文件格式,它...

    zip压缩算法

    在编程中实现ZIP压缩和解压缩,可以使用开源库如Java的`java.util.zip`包,C#的`System.IO.Compression`命名空间,或者Python的`zipfile`模块。这些库已经实现了ZIP格式和Deflate算法,开发者只需要调用相应的API...

    VB6.0源代码编写的调用压缩软件rar,压缩和解压按路径指定的picture图片文件App.Path & "\pic.bmp"

    在VB6.0编程环境中,开发人员经常需要处理文件的压缩和解压缩操作,以便于存储、传输或者备份数据。本篇文章将详细讲解如何利用VB6.0源代码调用RAR压缩软件,来实现对指定图片文件(如"pic.bmp")的压缩和解压功能。...

    压缩和解压缩ZIP

    压缩和解压缩类,添加到项目就可以了。方法直接传参数就可以完成压缩和解压缩。 注意的是必须用ZIP压缩工具压缩的文档才能解压。改后缀是不行的。

    (JAVA)利用Java实现zip压缩.解压缩.rar_decompress rar java_zip 压缩

    在Java编程语言中,我们...总的来说,Java中的ZIP压缩和解压缩功能强大且易于使用,是开发人员处理文件压缩需求的首选工具。通过熟练掌握`java.util.zip`包,你可以轻松地在Java应用程序中实现文件的压缩和解压缩功能。

    WinCE ZIP 压缩解压缩源代码

    本文将深入探讨基于C++实现的WinCE系统上的ZIP压缩和解压缩源代码,以及相关的关键知识点。 首先,我们要理解ZIP是一种广泛使用的文件压缩格式,它能够将多个文件打包成一个单一的ZIP档案,同时进行压缩,节省存储...

    JavaScript 实现的 zip 压缩和解压缩工具包Zip.js使用详解

    JavaScript实现的zip压缩和解压缩工具包Zip.js使用详解 Zip.js是一款用JavaScript编写的前端压缩和解压缩库,它允许开发者在不依赖后端的情况下,在网页端直接创建ZIP格式的压缩文件。这在许多应用场景中非常实用,...

    标准zip压缩解压缩DLL库

    - `zipdll.dll` 是核心的动态链接库文件,其中包含了实现ZIP压缩和解压缩功能的函数。 - `zipdll.lib` 是静态库文件,通常用于编译链接阶段,为编译器提供关于DLL函数的导入信息。 - `ReadMe.txt` 很可能是包含了...

    各种zip压缩解压缩源码集合

    这里我们将详细探讨zip压缩和解压缩的核心原理以及如何在这些技术栈中应用它们。 首先,zip是一种广泛使用的文件格式,用于将多个文件和目录打包成一个单一的可压缩文件。它采用了一种叫做Deflate的压缩算法,该...

    在iOS使用ZipArchive压缩和解压缩文件

    本文将详细介绍如何使用ZipArchive进行文件的压缩和解压缩。 ### 1. ZipArchive简介 ZipArchive是一个Objective-C类库,专门用于处理ZIP档案。它支持创建新的ZIP文件、添加文件到已有的ZIP文件以及从ZIP文件中提取...

    C#实现压缩解压zip文件源代码

    在C#编程环境中,处理文件压缩和解压缩是常见的任务,尤其在数据传输、存储优化等...以上就是关于C#实现ZIP压缩和解压缩的主要知识点。理解并掌握这些内容,开发者就能灵活地在C#项目中实现文件的压缩和解压缩功能。

    字符串zip压缩和解压缩的功能

    字符串zip压缩和解压缩的功能源码,源码zipAndUnzip,iOS上进行字符串的zip压缩和解压缩,不是文件哦,喜欢的朋友可以看看先。this is zip string or unzip data.

    SQL Server CLR 存储过程实现数据的ZIP压缩和解压

    在本篇文章中,我们将深入探讨如何利用SQL Server CLR实现数据的ZIP压缩和解压缩,以及其背后的原理和优势。 首先,理解CLR是什么至关重要。CLR是.NET Framework的一部分,它为托管代码提供了运行时环境,包括内存...

    MyZipConsole:使用 Qt 4 的 zip 压缩和解压缩命令行工具

    MyZipConsole的核心功能是对文件和文件夹进行zip压缩和解压缩。在C++中,可以使用第三方库如zlib或minizip来实现ZIP格式的处理。zlib是基础的压缩库,提供了数据压缩和解压缩功能,而minizip则在其之上提供了对ZIP...

    window平台下c++ 对zip压缩解压缩工程源代码

    这个压缩包提供的是一套基于C++实现的ZIP压缩和解压缩工程源代码,它支持通过JSON格式的字符串来处理多个文件或目录的压缩与解压缩操作。这对于数据传输、备份或者存储优化等场景非常实用。 首先,我们要理解ZIP...

Global site tag (gtag.js) - Google Analytics