`

java zip

    博客分类:
  • JAVA
阅读更多
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Enumeration;

import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipFile;
import org.apache.tools.zip.ZipOutputStream;

public class ZipUtils {
	static final int BUFFER = 1024;
	public static String encoding = "GBK";

	public static void zip(String inputFileName, String zipFileName)
			throws Exception {
		File f = new File(inputFileName);
		if(!f.exists())return;
		File zipFile = new File(zipFileName);
		ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipFile));
		out.setEncoding(encoding);
		zip(out, f, "");
		out.close();
	}

	private static void zip(ZipOutputStream out, File f, String base)
			throws Exception {
		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 len;
			byte[] buf = new byte[BUFFER];
			try {
				while ((len = in.read(buf, 0, BUFFER)) != -1) {
					out.write(buf, 0, len);
				}
			} catch (Exception e) {
				e.printStackTrace();
			}finally{
				in.close();
			}
			
		}
	}

	public static void unZip(String fileName, String filePath) throws Exception{
		ZipFile zipFile = new ZipFile(fileName, encoding);
		Enumeration<?> emu = zipFile.getEntries();
		while (emu.hasMoreElements()) {
			ZipEntry entry = (ZipEntry) emu.nextElement();
			if (entry.isDirectory()) {
				new File(filePath + entry.getName()).mkdirs();
				continue;
			}
			File file = new File(filePath + entry.getName());
			File parent = file.getParentFile();
			if (parent != null && (!parent.exists())) {
				parent.mkdirs();
			}
			BufferedInputStream bis = null; 
			FileOutputStream fos = null;
			BufferedOutputStream bos = null;
			try {
				bis = new BufferedInputStream(zipFile
						.getInputStream(entry));
				fos = new FileOutputStream(file);
				bos = new BufferedOutputStream(fos, BUFFER);
				byte[] buf = new byte[BUFFER];
				int len = 0;
				while ((len = bis.read(buf, 0, BUFFER)) != -1) {
					fos.write(buf, 0, len);
				}
				bos.flush();
			} catch (Exception e) {
				e.printStackTrace();
			} finally{
				if(bos!=null){
					bos.close();
				}
				if(bis!=null){
					bis.close();
				}
			}
		}
		zipFile.close();
	}

	public static void main(String[] args) {

		try {
			ZipUtils.zip("d:/djfocus-models/", "d:/djfocus-models.zip");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

 

1
8
分享到:
评论

相关推荐

    java zip解压中文乱码问题

    网上很多描述java解压中文乱码的问题,很多描述不全.由于工作需要整理出一个完整版.简单实用.下载后请从ZipUtil.java的main方法开始,一目了然. public static void main(String args[]) { new ZipUtil().unZip("E:\\...

    基于Java向zip压缩包追加文件

    在Java编程中,向现有的ZIP压缩包追加文件通常需要经过解压、修改、再压缩的步骤,因为标准的Java ZIP库(如`java.util.zip`包)并不直接支持追加到已存在的ZIP文件。本篇文章将深入探讨如何实现这个功能,主要关注...

    java Zip 文件压缩

    import org.apache.commons.compress.archivers.zip.Zip64Mode; import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream; ...

    java zip文件压缩 可以对目录进行压缩

    使用java的zip压缩库 对文件和文件夹实现压缩

    java源码:Java zip压缩包查看程序源码.rar

    这个压缩包文件"Java源码:Java zip压缩包查看程序源码.rar"包含的是一个使用Java实现的程序,能够查看和操作ZIP压缩包。下面将详细探讨Java在处理ZIP文件格式时涉及的关键知识点。 1. ZIP文件格式:ZIP是一种常见...

    java zip操作

    java 操作 zip压缩,解压缩 java 操作 zip压缩,解压缩 java 操作 zip压缩,解压缩 java 操作 zip压缩,解压缩 java 操作 zip压缩,解压缩

    javaZIP压缩源代码

    javaZIP压缩源代码,可以很方便的进行打包.源码含有详细的注释.

    JAVA源码Javazip压缩包查看程序源码

    JAVA源码Javazip压缩包查看程序源码

    java加密解密zip压缩包

    为了实现ZIP文件的加密,我们需要依赖第三方库,例如Apache Commons Compress或者Java 7及以上版本引入的`java.nio.file`和`java.util.zip`中的`ZipFile`和`ZipEntry`类。 对于ZIP 2.0加密,Apache Commons ...

    java压缩zip文件解决中文乱码问题

    在Java编程中,处理文件压缩和解压是常见的任务,特别是使用ZIP格式。然而,当涉及到包含中文字符的文件或目录时,可能会遇到乱码问题。这个问题主要源于字符编码的不一致,通常需要正确设置字符集来确保中文字符在...

    Java zip解压,并遍历zip中的配置文件 .cfg或.properties

    Java zip解压,并遍历zip中的配置文件 .cfg或.properties,项目实用

    java读取zip文件

    在Java编程环境中,读取ZIP文件是一项常见的任务,特别是在处理归档数据或打包资源时。以下将详细讲解如何使用Java来实现这一功能。 首先,Java提供了`java.util.zip`包,该包包含了处理ZIP文件所需的类,如`...

    java源码资源Javazip压缩包查看程序源码

    java源码资源Java zip压缩包查看程序源码提取方式是百度网盘分享地址

    zip4j--Java操作zip压缩文件接口

    Java操作zip压缩格式的开源项目,功能强大而且使用方便,能完全满足Java操作Zip压缩文件,官方网址为:http://www.lingala.net/zip4j/ 可以下载到jar包、源码和示例,好像没有提供API文档。 不过需要使用代理访问...

    java zip压缩包 解压zip Eclipse项目

    java 打zip压缩包 解压缩包Eclipse项目20111011 java 打zip压缩包 解压缩包Eclipse项目20111011java 打zip压缩包 解压缩包Eclipse项目20111011

    Java实现将多目录多层级文件打成ZIP包,以及解压ZIP包

    本文将详细讲解如何使用Java实现将多目录多层级的文件打成ZIP包,以及如何解压这些ZIP包。我们将主要关注`FileUtils.java`这个类,以及依赖的`commons-compress-1.1.jar`库。 `commons-compress-1.1.jar`是Apache ...

    详解Java无需解压直接读取Zip文件和文件内容

    Java无需解压直接读取Zip文件和文件内容是Java语言中的一种常见操作,通过使用java.util.zip包中的ZipFile、ZipInputStream和ZipEntry类,我们可以轻松地读取Zip文件和文件内容。下面,我们将详细介绍如何使用Java...

    java zip 图片及文件压缩

    java的zip压缩图片和文件。并且可以直接压缩整个文件夹。及解压功能

    java实现ZIP压缩

    java实现zip压缩功能,java实现zip压缩功能,java实现zip压缩功能,java实现zip压缩功能,java实现zip压缩功能,java实现zip压缩功能,java实现zip压缩功能,java实现zip压缩功能,java实现zip压缩功能,java实现zip...

    java zip unzip

    java zip unzipjava zip unzipjava zip unzipjava zip unzipjava zip unzipjava zip unzipjava zip unzipjava zip unzipjava zip unzipjava zip unzipjava zip unzipjava zip unzipjava zip unzip

Global site tag (gtag.js) - Google Analytics