从中午开始学习压缩流的使用一直到现在才搞定压缩,最后发现居然是两个反斜杠错了 感觉都不会爱了,,,哈哈
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中的文件
相关推荐
zipEntry.setComment("压缩文件"); // 可以添加注释,同样需要指定字符集 zos.putNextEntry(zipEntry); try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file))) { byte[] buffer...
本文将深入探讨如何使用Java实现ZIP文件的压缩与解压,重点讲解核心API,如`java.util.zip`包中的`ZipOutputStream`和`ZipInputStream`。 首先,我们来了解一下ZIP文件格式。ZIP是一种用于存储多个文件到一个单一...
在Java编程环境中,解压ZIP压缩文件是一项常见的任务,它涉及到文件I/O操作以及对ZIP文件格式的理解。本文将深入探讨如何使用Java实现这一功能,同时也会提及`UnZip.java`和`UnZip2.java`这两个文件可能包含的实现...
本文将深入探讨如何使用Java来处理ZIP文件,特别是针对标题所提及的“java 中 zip压缩文件解压工具类”。我们将讨论核心的Java API,如`java.util.zip`包中的类,并通过一个名为`CompressFileUtils`的工具类来展示...
Java操作Zip文件主要涉及到对文件和目录的压缩与解压缩,以及在必要时对压缩文件进行加密处理。这里我们重点讨论使用两个库:`zip4j`和`Apache Ant`来实现这些功能。 1. **zip4j库**:`zip4j-1.3.2.jar`是一个用...
在Java编程中,将多个文件压缩成一个ZIP文件并实现下载是一个常见的任务,尤其是在处理大量数据或文件分发时。...同时,为了提高性能和用户体验,可以考虑使用异步处理或多线程来压缩文件,特别是当处理大量大文件时。
//文件数据(待压缩文件) JButton jbAdd; //增加文件按钮 JButton jbDelete; //删除文件按钮 JButton jbZip; //压缩按钮 JTextField target; //目标文件文本域 public ZipDemo(){ super("用ZIP...
在Java编程中,向现有的ZIP压缩包追加文件通常需要经过解压、修改、再压缩的步骤,因为标准的Java ZIP库(如`java.util.zip`包)并不直接支持追加到已存在的ZIP文件。本篇文章将深入探讨如何实现这个功能,主要关注...
在Java编程语言中,处理ZIP压缩文件是一项常见的任务,它涉及到文件和目录的打包与解压。本篇文章将深入探讨如何使用Java实现ZIP文件的压缩和解压缩操作,以及涉及的相关知识点。 首先,理解ZIP文件格式是基础。ZIP...
Java操作zip压缩格式的开源项目,功能强大而且使用方便,能完全满足Java操作Zip压缩文件,官方网址为:http://www.lingala.net/zip4j/ 可以下载到jar包、源码和示例,好像没有提供API文档。 不过需要使用代理访问...
本实践主要关注如何使用Java来处理ZIP格式的压缩文件,以下将详细介绍相关知识点。 1. **Java档案API(Java Archive API, JAR)** Java标准库提供了一个强大的API来处理各种类型的档案文件,包括ZIP格式。`java....
在Java编程语言中,生成ZIP压缩文件是一项常见的任务,它涉及到文件操作和数据流的处理。这个过程可以用于归档多个文件或者整个目录结构,便于存储或传输。下面我们将详细探讨如何使用Java来生成ZIP压缩文件,以及...
Java无需解压直接读取Zip文件和文件内容是Java语言中的一种常见操作,通过使用java.util.zip包中的ZipFile、ZipInputStream和ZipEntry类,我们可以轻松地读取Zip文件和文件内容。下面,我们将详细介绍如何使用Java...
### Java 实现ZIP压缩文件详解 #### 一、概述 在日常开发工作中,对文件进行压缩处理是一项常见的需求。本文将详细介绍如何使用Java语言来实现文件或文件夹的ZIP格式压缩。通过本教程,读者可以了解到Java标准库...
本文主要介绍如何使用Java实现文件的ZIP压缩功能,并提供了完整的代码示例。通过学习本文,你可以掌握以下几个知识点: 1. 使用`java.util.zip`包中的类进行文件压缩。 2. 如何创建ZIP输出流并写入文件数据。 3. ...
要压缩文件到ZIP,我们可以使用`org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream`类。以下是一个简单的示例: ```java import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; ...
使用java的zip压缩库 对文件和文件夹实现压缩
* @param zipFile 指定的ZIP压缩文件 * @param dest 解压目录 * @param passwd ZIP文件的密码 * @return 解压后文件数组 * @throws ZipException 压缩文件有损坏或者解压缩失败抛出 */ 方法详细见文件! 一个...
在Java编程语言中,`zip`格式是一种常用的文件压缩方式,用于将多个文件打包成一个单一的可压缩文件。这个`Java zip 压缩/解压源码`的资源提供了一个简洁易用的API,使得开发者能够方便地对文件进行压缩和解压缩操作...
ZIP文件是一种广泛使用的文件归档格式,它可以将多个文件和目录组合成一个单一的可压缩文件,方便存储和传输。在Java中,我们可以使用`java.util.zip`包中的类来读取和解压ZIP文件。 首先,我们需要了解几个关键的...