`
百合不是茶
  • 浏览: 355970 次
社区版块
存档分类
最新评论

JAVA Zip压缩文件

阅读更多

   从中午开始学习压缩流的使用一直到现在才搞定压缩,最后发现居然是两个反斜杠错了  感觉都不会爱了,,,哈哈

 

java.util.zip包中提供了一系列的类可以来实现zip的压缩,

 

Zip压缩流的创建与其他的流的创建没有什么区别;例如

ZipOutputStream ops = new ZipOutputStream(new FileOutputStream("D:\\test.zip"));

 

ZIP输入流打开后,你可以使用getNextEntry方法来读取ZIP文件中的条目数,该方法返回一个ZipEntry对象。如果到达文件的尾部,getNextEntry返回null:

ZipEntry entry;
while((entry = zin.getNextEntry()) != null) {
   // extract data
   // open output streams
}

 

实现单文件的压缩;

代码如下;

首先在D盘中创建要压缩的文件夹

package ZIP文件流;

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.ObjectOutputStream.PutField;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

/**
 * Zip格式的文件压缩
 * @author Administrator
 *
 */
public class Copy2Test {

	public static void main(String[] args) {
		//单文件压缩
	Copy2Txt();

		
	}
	
	/**
	 * 压缩单文件的方法
	 * 1,定义文件压缩输出流
	 * 2,实例化一个文件压缩的对象
	 * 3,创建文件输入流
	 * 4,将输入流写到文件压缩流中
	 * @throws FileNotFoundException 
	 */
	public static void Copy2Txt() {
		try{
			//1,创建文件输出时的文件
		ZipOutputStream ops = new ZipOutputStream(new FileOutputStream("D:\\test.zip"));
		//2,创建输出文件中的对象
		ZipEntry entry = new ZipEntry("ab.txt");
		//创建一个文档注释
		ops.setComment("Here is how we compressed in Java");
		//将对象放到压缩文档中
		ops.putNextEntry(entry);
		 //3,创建文件输入流
		InputStream fis = new FileInputStream("D:\\ab.txt");
//		int len = 0;
//		while ((len = fis.read()) != -1)
//			ops.write(len);
		int len = fis.read();
		while(len !=-1){
			ops.write(len);
			len = fis.read();
			}
		fis.close();
		ops.close();
		}catch(Exception e){
			e.printStackTrace();
		}
	}
}

 源文件与压缩后的文件

 

源文件中的内容

 压缩文件中的内容

 

 

压缩多个文件的代码如下;

 

package ZIP文件流;

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.ObjectOutputStream.PutField;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

/**
 * Zip格式的文件压缩
 * @author Administrator
 *
 */
public class Copy2Test {

	public static void main(String[] args) {
		//多文件压缩
		Copy2Demo();
		System.out.println("//////");
		
	}
	

	
	/***
	 *多文件压缩
	 */
	public static void Copy2Demo() {
		try {
			File file = new File("F:\\test");
			//1,创建文件输出时的文件
			ZipOutputStream zop = new ZipOutputStream(new FileOutputStream("F:\\test.zip"));
		    zop.setComment("多文本压缩");
		    isFile(zop,file,"");
		    zop.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	/**
	 * 判断文件还是文件目录
	 * @param zop 输出流
	 * @param file 文件
	 * @param dir 目录名字
	 * @throws IOException 
	 */
	private static void isFile(ZipOutputStream zop,File file,String dir) throws IOException{
		//如果是目录
		
		if(file.isDirectory()){
			//将文件保存到文件数组中
			File[] fil = file.listFiles();
			//遍历出来
			for(File files: fil ){
				
				isFile(zop,files,dir+"\\"+file.getName());
			}
		}else{
			String entryName = null;
			//判断文件名是否为空
			if(!"".equals(dir)){
			  entryName = dir+"\\"+file.getName();
			}
			else{
				entryName = file.getName();
			}
				//根据获取到的名字创建文件对象
				ZipEntry entrys = new ZipEntry(entryName);
				zop.putNextEntry(entrys);
				//创建文件输入流
				InputStream fim = new FileInputStream(file);
				int lens =fim.read();
				while(lens!=-1){
					zop.write(lens);
				    lens = fim.read();
				}
				fim.close();
			
		}
	}
	
}

 源文件与压缩文件

 

压缩文件中被压缩的文件

 压缩文件中Testfile中的文件



 

 

  • 大小: 5.7 KB
  • 大小: 40.2 KB
  • 大小: 89.6 KB
  • 大小: 50.6 KB
  • 大小: 78.8 KB
  • 大小: 49.4 KB
0
0
分享到:
评论

相关推荐

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

    zipEntry.setComment("压缩文件"); // 可以添加注释,同样需要指定字符集 zos.putNextEntry(zipEntry); try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file))) { byte[] buffer...

    使用 Java 实现的压缩/解压 ZIP 文件的工具类

    本文将深入探讨如何使用Java实现ZIP文件的压缩与解压,重点讲解核心API,如`java.util.zip`包中的`ZipOutputStream`和`ZipInputStream`。 首先,我们来了解一下ZIP文件格式。ZIP是一种用于存储多个文件到一个单一...

    java解压zip压缩文件

    在Java编程环境中,解压ZIP压缩文件是一项常见的任务,它涉及到文件I/O操作以及对ZIP文件格式的理解。本文将深入探讨如何使用Java实现这一功能,同时也会提及`UnZip.java`和`UnZip2.java`这两个文件可能包含的实现...

    java 中 zip压缩文件解压工具类

    本文将深入探讨如何使用Java来处理ZIP文件,特别是针对标题所提及的“java 中 zip压缩文件解压工具类”。我们将讨论核心的Java API,如`java.util.zip`包中的类,并通过一个名为`CompressFileUtils`的工具类来展示...

    java 操作Zip文件(压缩、解压、加密).zip

    Java操作Zip文件主要涉及到对文件和目录的压缩与解压缩,以及在必要时对压缩文件进行加密处理。这里我们重点讨论使用两个库:`zip4j`和`Apache Ant`来实现这些功能。 1. **zip4j库**:`zip4j-1.3.2.jar`是一个用...

    java多文件压缩成zip文件并实现下载

    在Java编程中,将多个文件压缩成一个ZIP文件并实现下载是一个常见的任务,尤其是在处理大量数据或文件分发时。...同时,为了提高性能和用户体验,可以考虑使用异步处理或多线程来压缩文件,特别是当处理大量大文件时。

    Java调用Zip类批量压缩多个文件.rar

    //文件数据(待压缩文件)  JButton jbAdd; //增加文件按钮  JButton jbDelete; //删除文件按钮  JButton jbZip; //压缩按钮  JTextField target; //目标文件文本域  public ZipDemo(){  super("用ZIP...

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

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

    zip 压缩 文件 Java

    在Java编程语言中,处理ZIP压缩文件是一项常见的任务,它涉及到文件和目录的打包与解压。本篇文章将深入探讨如何使用Java实现ZIP文件的压缩和解压缩操作,以及涉及的相关知识点。 首先,理解ZIP文件格式是基础。ZIP...

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

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

    JAVA文件压缩与解压缩实践,java解压缩zip文件,Java源码.zip

    本实践主要关注如何使用Java来处理ZIP格式的压缩文件,以下将详细介绍相关知识点。 1. **Java档案API(Java Archive API, JAR)** Java标准库提供了一个强大的API来处理各种类型的档案文件,包括ZIP格式。`java....

    java 生成zip压缩文件

    在Java编程语言中,生成ZIP压缩文件是一项常见的任务,它涉及到文件操作和数据流的处理。这个过程可以用于归档多个文件或者整个目录结构,便于存储或传输。下面我们将详细探讨如何使用Java来生成ZIP压缩文件,以及...

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

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

    java实现zip压缩文件

    ### Java 实现ZIP压缩文件详解 #### 一、概述 在日常开发工作中,对文件进行压缩处理是一项常见的需求。本文将详细介绍如何使用Java语言来实现文件或文件夹的ZIP格式压缩。通过本教程,读者可以了解到Java标准库...

    Java把文件压缩成zip

    本文主要介绍如何使用Java实现文件的ZIP压缩功能,并提供了完整的代码示例。通过学习本文,你可以掌握以下几个知识点: 1. 使用`java.util.zip`包中的类进行文件压缩。 2. 如何创建ZIP输出流并写入文件数据。 3. ...

    java zip文件压缩与解压缩

    要压缩文件到ZIP,我们可以使用`org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream`类。以下是一个简单的示例: ```java import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; ...

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

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

    java压缩文件生成带密码的zip包,解压带密码的zip包的工具类

    * @param zipFile 指定的ZIP压缩文件 * @param dest 解压目录 * @param passwd ZIP文件的密码 * @return 解压后文件数组 * @throws ZipException 压缩文件有损坏或者解压缩失败抛出 */ 方法详细见文件! 一个...

    Java zip 压缩/解压源码

    在Java编程语言中,`zip`格式是一种常用的文件压缩方式,用于将多个文件打包成一个单一的可压缩文件。这个`Java zip 压缩/解压源码`的资源提供了一个简洁易用的API,使得开发者能够方便地对文件进行压缩和解压缩操作...

    java 解压缩zip文件

    ZIP文件是一种广泛使用的文件归档格式,它可以将多个文件和目录组合成一个单一的可压缩文件,方便存储和传输。在Java中,我们可以使用`java.util.zip`包中的类来读取和解压ZIP文件。 首先,我们需要了解几个关键的...

Global site tag (gtag.js) - Google Analytics