`
mjbb
  • 浏览: 88859 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java打zip包

阅读更多
public class TestZip {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		String name = "a.txt";
		String name2 = "b.txt";
		File f1 = new File(name);
		File f2 = new File(name2);
		List<File> files = new ArrayList<File>();
		files.add(f1);
		files.add(f2);
		File out = new File("x.zip");
		
		ZipFiles(files, out);
		
		String[] fnames = {"a.txt","b.txt"};
		ZipFiles(fnames, "c.zip");
		
	}
	
	public static void ZipFiles(String[] ins, String out){
		List<String> in = Arrays.asList(ins);
		ZipFiles(in, out);
	}
	
	public static void ZipFiles(List<String> ins, String out){
		List<File> inFiles = new ArrayList<File>();
		File f = null;
		for(String s: ins){
			f = new File(s);
			if(f.exists()){
				inFiles.add(f);
			}
			f = null;
		}
		
		ZipFiles(inFiles, new File(out));
	}

	/**
	 * 将inFiles指定的文件, 按zip压缩为outFile
	 * @param inFiles
	 * @param outFile
	 */
	public static void ZipFiles(List<File> inFiles, File outFile) {
		byte[] buff = new byte[4096];
		int len = -1;

		ZipOutputStream zipout = null;
		try {
			zipout = new ZipOutputStream(new FileOutputStream(outFile));
//			zipout.setLevel(ZipOutputStream.STORED);
		} catch (FileNotFoundException e1) {
			e1.printStackTrace();
		}

		ZipEntry entry = null;

		InputStream in = null;

		for (File f : inFiles) {
			try {
				in = new FileInputStream(f);
				entry = new ZipEntry(f.getName());
				zipout.putNextEntry(entry);

				while ((len = in.read(buff)) != -1) {
					zipout.write(buff, 0, len);
				}

				zipout.flush();

			} catch (Exception e) {
				// TODO: handle exception
			} finally {
				if (in != null) {
					try {
						in.close();
					} catch (IOException e) {
						e.printStackTrace();
					}
				}

				try {
					zipout.closeEntry();
				} catch (IOException e) {
					e.printStackTrace();
				}

			}
		}
		try {
			zipout.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}
分享到:
评论

相关推荐

    java 打zip包

    本资源提供了一种解决方案,解决了使用Java打zip包时可能会遇到的中文乱码和包含空文件的问题。以下是关于这个主题的一些关键知识点: 1. **Java的 ZIP API**:Java标准库提供了一个名为`java.util.zip`的包,它...

    用java打zip包

    Java标准库中的`java.util.zip`包提供了`ZipOutputStream`类,可以用来创建ZIP文件。但是,这个类默认使用的是ISO-8859-1编码,无法很好地处理非ASCII字符,例如中文。为了解决这个问题,我们需要在写入文件时指定...

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

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

    java Zip打包完整例子

    在Java中,我们可以使用内置的`java.util.zip`包来实现这个功能。下面将详细介绍如何使用Java进行Zip打包,以及涉及到的相关类和方法。 1. `java.util.zip`包: 这个包提供了对ZIP格式压缩文件的支持,包括`...

    java解压zip 可包含中文文件

    在Java编程环境中,处理压缩文件,特别是ZIP格式的文件,是一项常见的任务。有时,这些压缩文件可能包含中文文件名,这在处理时可能会遇到编码问题。`java.util.zip`库是Java标准库的一部分,提供了对ZIP文件的支持...

    java压缩文件,zip打包

    应用java来压缩需要打包的文件,在系统管理中将毛哥路径或者某个文件夹压缩成zip包

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

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

    java加密解密zip压缩包

    Java提供了一个名为`java.util.zip`的包,其中包含用于处理ZIP文件的类,如`ZipOutputStream`和`ZipInputStream`。然而,这些类本身并不支持加密。为了实现ZIP文件的加密,我们需要依赖第三方库,例如Apache Commons...

    zip打包java实现方法

    zip打包java实现方法,其中包括打包,解压

    java 实现指定目录下的文件打包zip格式 并指定存放zip包

    java 实现指定目录下的文件打包zip格式 并指定存放zip包

    zip压缩java工具类包含jar文件

    首先,`ZipEntry`是Java标准库`java.util.zip`包中的核心类,用于表示`zip`文件中的一个条目(entry)。它包含了条目的名称、时间戳、压缩方法、大小等信息。创建`ZipEntry`对象时,通常需要提供条目的名称,然后...

    zipJava.zip

    总结来说,"zipJava.zip"提供的源码展示了如何利用Java标准库中的`java.util.zip`包来创建ZIP文件。通过创建`ZipOutputStream`,设置`ZipEntry`,读取文件内容并写入,我们可以方便地将多个文件打包成一个压缩文件。...

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

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

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

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

    java读取zip文件

    首先,Java提供了`java.util.zip`包,该包包含了处理ZIP文件所需的类,如`ZipInputStream`、`ZipEntry`等。`ZipInputStream`用于读取ZIP文件的输入流,而`ZipEntry`代表ZIP文件中的每一个条目(即文件或目录)。 1....

    JAVA解压ZIP多层目录文件(需ant.jar

    ### JAVA解压ZIP多层目录文件(需ant.jar) #### 概述 本文将详细介绍一个Java方法,该方法用于解压包含多层目录结构的ZIP文件,并能够支持中文文件名。这种方法利用了Apache Ant库中的`org.apache.tools.zip....

    java生成.zip包,解压缩.zip

    最后,`生成zip包代码.txt`和`解压缩zip包.txt`文件可能包含了具体的实现代码,而`需要用的jar包`可能是指在某些情况下,如使用第三方库时,可能需要引入额外的依赖项。例如,如果使用了Apache Commons Compress库,...

    java打包zip(超级简单)

    因项目需求,需要在线生成world文档,并且需要批量生成world,那么就可以用zip打包所有world进行下载,这里提供的是一个简单的demo,如需了解在线生成文件,并打包到zip,可以问我

    用java.util.zip包现数据压缩与解压

    ### 使用 Java.util.zip 包实现数据压缩与解压 在计算机科学领域,数据压缩技术是一项重要的功能,它能够帮助减少存储空间的需求以及提高网络传输效率。本文将通过一系列的示例来详细介绍如何利用 Java 中的 `java....

Global site tag (gtag.js) - Google Analytics