`

ZIP压缩,解压缩简单实现

    博客分类:
  • JAVA
 
阅读更多
package com.fangtoon.business.activity.junit; 

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;

/** 
  * @date    创建时间:2014年12月31日 上午9:08:59  
 */

public class ZipUtils {
	
	
	//D:\logs\zipLog
	public  static void zipFiles(File destfile,File zipFiles) throws Exception{
		if(!destfile.isFile()){
			destfile.createNewFile();
		}
		try{
			File[] listFiles = zipFiles.listFiles();
			ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(destfile));
			for(File file : listFiles){
				ZipEntry zipEntry = new ZipEntry(file.getName());
				zos.putNextEntry(zipEntry);
				FileInputStream fis = new FileInputStream(file);
				System.out.println("===" + fis.available());
				byte[] bytes = new byte[4096];
				int read = 0;
				while((read = fis.read(bytes))!=-1){
					zos.write(bytes, 0, read);
				}
				zos.closeEntry();
				fis.close();
			}
			zos.finish();
			zos.close();
		}catch(Exception e){
			e.printStackTrace();
		} 
	}

	
	
	public  static void unZipFiles(File destfile,File File) throws Exception{
		if(!destfile.isDirectory()){
			 throw new IllegalAccessException("此文件格式不是一个目录文件");
		}
		try{
			String directoryName = destfile.getAbsolutePath()+"/";
			ZipFile zf = new ZipFile(File);  
			Enumeration zipEntrys =  zf.entries(); 
			while(zipEntrys.hasMoreElements()){
				ZipEntry zipEntry = (ZipEntry) zipEntrys.nextElement();
				InputStream is = zf.getInputStream(zipEntry);
				FileOutputStream fos = new FileOutputStream(directoryName+zipEntry.getName());
				byte[] bytes = new byte[1024];
				int read = 0;
				while((read = is.read(bytes))!=-1){
					fos.write(bytes, 0, read);
				}
				fos.close();
				is.close();
			}
			zf.close();
		}catch(Exception e){
			e.printStackTrace();
		}
	}
	
	public static void main(String args[]) throws Exception{
		File file = new File("D:\\logs\\zipLog");
		File destFile = new File("D:\\logs\\testZip\\zip.zip");
		zipFiles(destFile,file);
		//unZipFiles(file, destFile);
		System.out.println("fdsafdsf");
	}

}

 

    这个例子只支持zip的压缩解压,如果有.rar的解压缩功能请下以下地址:

   

    http://www.iteye.com/topic/1073173

 

    如果遇到读取中文命名乱码的现象请加粗代码即可:

 

    

String compressFileName = fileHeader.getFileNameW().trim();  

 

 

 

 

分享到:
评论

相关推荐

    zip压缩解压缩

    【描述】:“zip压缩解压缩 源代码 c++ code”指出我们将探讨的是使用C++编程语言实现ZIP文件的压缩和解压缩功能。C++是一种强大的、通用的面向对象编程语言,它的灵活性和高效性使得它成为处理这种底层数据操作的...

    C++ zip压缩解压缩源代码

    C++ zip压缩解压缩源代码 压缩时调用 #include "zip.h" HZIP hz = CreateZip("c:\\simple1.zip",0); ZipAdd(hz,"znsimple.bmp", "c:\\simple.bmp"); ZipAdd(hz,"znsimple.txt", "c:\\simple.txt"); ...

    ucos移植zlib和zip文件解压缩

    本篇文章将详细介绍如何在UCOS系统中移植ZLIB库以及实现ZIP文件的解压缩。 首先,ZLIB是一个开源的压缩库,它提供了数据的无损压缩和解压缩功能,常用于GIF、PNG等文件格式。移植ZLIB到UCOS涉及到以下几个关键步骤...

    C++ zip解压缩压缩

    标题中的"C++ zip解压缩"指的是使用C++编程语言来处理ZIP文件格式,这是一种广泛使用的文件打包和压缩格式。ZIP文件可以将多个文件和目录组合到一个单一的档案文件中,并且可以进行压缩以节省存储空间。C++库提供了...

    Delphi实现Zip压缩/解压缩

    你可以使用`TZipFile.Create`方法来创建一个新的`TZipFile`实例,然后通过`Add`方法将文件添加到ZIP档案中,或者使用`ExtractToFile`方法将ZIP内的文件解压缩到指定位置。例如: ```delphi uses System.Zip; var ...

    C语言zip解压缩算法源代码

    本篇文章将深入探讨C语言实现的zip解压缩算法源代码,以及与之相关的技术知识点。 首先,我们要了解zip文件格式。Zip是一种广泛使用的文件压缩标准,它能够将多个文件打包成一个单一的压缩文件,便于存储和传输。在...

    C语言实现Zip压缩解压.rar

    本文将深入探讨如何使用C语言实现ZIP压缩与解压功能。 ZIP是一种广泛使用的文件压缩格式,它能够将多个文件打包并压缩成一个单一的ZIP档案,以便于存储、传输和分享。ZIP文件格式的标准由PKWARE公司制定,并由Info-...

    c/c++zip压缩解压缩

    标题中的"C/C++ zip压缩解压缩"是指使用C或C++编程语言来实现对ZIP文件格式的处理。ZIP是一种广泛使用的文件归档格式,它允许将多个文件和目录打包成一个单一的可移植文件,同时提供数据压缩以节省存储空间。 描述...

    Delphi 压缩解压缩zip文件源代码,支持密码

    1. 可以将任意一个目录压缩成一个zip文件,包含密码 2. 可以将任意一个zip文件,加压到一个目录中,该目录位于当前执行文件所在目录的Unzip目录中,目录结构... 兼容三方的压缩解压缩文件。 带有演示程序以及原代码

    delphi中进行zip压缩解压缩

    在Delphi编程环境中,处理ZIP文件的压缩与解压缩任务时,可以借助第三方库VCLZip。VCLZip是一个强大的组件集,它提供了方便的API,使得开发者可以在Delphi应用程序中轻松实现对ZIP文件的操作。下面我们将详细探讨...

    利用Java实现zip压缩解压缩

    ### Java 实现 ZIP 文件压缩与解压缩 #### 知识点概述 在现代软件开发过程中,数据压缩是一项非常重要的技术,特别是在处理大量数据时。Java 作为一种广泛应用的编程语言,提供了丰富的 API 来支持文件的压缩与解...

    (安卓APP项目源代码)文件管理器源码,文件拖曳,list弹性,root ,zip压缩解.zip

    (安卓APP项目源代码)文件管理器源码,文件拖曳,list弹性,root ,zip压缩解.zip(安卓APP项目源代码)文件管理器源码,文件拖曳,list弹性,root ,zip压缩解.zip(安卓APP项目源代码)文件管理器源码,文件拖曳,list弹性,...

    哈夫曼压缩与解压缩源码.zip

    哈夫曼压缩与解压缩源码.zip哈夫曼压缩与解压缩源码.zip哈夫曼压缩与解压缩源码.zip哈夫曼压缩与解压缩源码.zip哈夫曼压缩与解压缩源码.zip哈夫曼压缩与解压缩源码.zip哈夫曼压缩与解压缩源码.zip哈夫曼压缩与解压缩...

    VB.NET使用ZipPackage实现ZIP文件压缩解压缩示例

    在解压缩方面,我们需要打开已存在的ZIP文件,然后读取其中的每个部分(PackagePart),将其内容写入到目标文件。以下是一个VB.NET解压缩的示例: ```vb.net Imports System.IO.Packaging Module UnzipDemo Sub ...

    ZIP 压缩 解压缩 源码

    使用ZLIB库 包装的压缩解压缩文件的源码 VS2005 工程创建 /* */ class ZIPWRAP_EXP CZipper { public: CZipper(); virtual ~CZipper(); // simple interface static bool ZipFile(const char* szFilePath...

    WinCE ZIP 压缩解压缩源代码

    总的来说,这份WinCE ZIP压缩解压缩源代码为开发者提供了一个实用的工具,通过研究和理解源代码,不仅可以掌握ZIP文件处理的基本原理,还可以了解到在有限资源环境下C++编程的一些技巧。同时,这也是一个很好的学习...

    C# Zip解压缩文件

    3. 解压缩文件:以下是一个简单的解压缩文件的示例: ```csharp public static void UnzipFile(string zipFilePath, string destinationDirectory) { if (!File.Exists(zipFilePath)) { throw new ...

    标准zip压缩解压缩DLL库

    标题中的“标准zip压缩解压缩DLL库”指的是一个动态链接库(Dynamic Link Library,简称DLL),它是Windows操作系统中的一种共享库,包含了一系列用于处理ZIP格式压缩和解压缩的函数。DLL库的优势在于可以让多个程序...

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

    本压缩包"各种zip压缩解压缩源码集合.zip"显然包含了一系列与Zip压缩算法相关的源代码,这对于理解其工作原理、进行二次开发或者优化现有压缩库非常有价值。下面,我们将深入探讨Zip压缩算法及相关编程知识。 1. **...

Global site tag (gtag.js) - Google Analytics