jdk提供了Zip相关的类方便的实现压缩和解压缩。使用方法很简单。下边分别是压缩和解压缩的简单事例
1,压缩的
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class Zip {
static final int BUFFER = 2048;
public static void main(String argv[]) {
try {
BufferedInputStream origin = null;
FileOutputStream dest = new FileOutputStream("E:\\test\\myfiles.zip");
ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(dest));
byte data[] = new byte[BUFFER];
File f = new File("e:\\test\\a\\");
File files[] = f.listFiles();
for (int i = 0; i < files.length; i++) {
FileInputStream fi = new FileInputStream(files[i]);
origin = new BufferedInputStream(fi, BUFFER);
ZipEntry entry = new ZipEntry(files[i].getName());
out.putNextEntry(entry);
int count;
while ((count = origin.read(data, 0, BUFFER)) != -1) {
out.write(data, 0, count);
}
origin.close();
}
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
2,解压缩的。
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
public class UnZip {
static final int BUFFER = 2048;
public static void main(String argv[]) {
try {
String fileName = "E:\\test\\myfiles.zip";
String filePath = "E:\\test\\";
ZipFile zipFile = new ZipFile(fileName);
Enumeration emu = zipFile.entries();
int i = 0;
while (emu.hasMoreElements()) {
ZipEntry entry = (ZipEntry) emu.nextElement();
// 会把目录作为一个file读出一次,所以只建立目录就可以,之下的文件还会被迭代到。
if (entry.isDirectory()) {
new File(filePath + entry.getName()).mkdirs();
continue;
}
BufferedInputStream bis = new BufferedInputStream(zipFile.getInputStream(entry));
File file = new File(filePath + entry.getName());
// 加入这个的原因是zipfile读取文件是随机读取的,这就造成可能先读取一个文件
// 而这个文件所在的目录还没有出现过,所以要建出目录来。
File parent = file.getParentFile();
if (parent != null && (!parent.exists())) {
parent.mkdirs();
}
FileOutputStream fos = new FileOutputStream(file);
BufferedOutputStream bos = new BufferedOutputStream(fos, BUFFER);
int count;
byte data[] = new byte[BUFFER];
while ((count = bis.read(data, 0, BUFFER)) != -1) {
bos.write(data, 0, count);
}
bos.flush();
bos.close();
bis.close();
}
zipFile.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
Java 提供了内置的支持来完成文件的压缩与解压缩操作,这些功能主要通过 `java.util.zip` 区域内的类实现。 #### 二、Zip 相关类介绍 - **ZipOutputStream**:用于创建 zip 压缩文件。 - **ZipEntry**:表示 zip ...
本教程将详细讲解如何在Java中进行ZIP文件的压缩与解压缩。 首先,我们来看`Zipper.java`和`Unzip.java`这两个类。它们分别实现了ZIP文件的压缩和解压缩功能。在Java中,`java.util.zip`包提供了对ZIP文件格式的...
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
`UnZip.java`和`UnZip2.java`可能包含了不同的解压实现,例如,`UnZip2.java`可能会包含更高效或更复杂的解压逻辑,比如递归处理子目录、处理大型ZIP文件的优化、错误处理或进度指示等。这些文件可能使用了循环、...
通过上述步骤,可以实现基于Java向ZIP压缩包追加文件的功能,虽然这个过程涉及解压和再压缩,但它是最常见的解决方案,因为Java的标准库不直接支持追加操作。在实际应用中,可以根据具体需求进行优化和调整,以满足...
网上很多描述java解压中文乱码的问题,很多描述不全.由于工作需要整理出一个完整版.... new ZipUtil().unZip("E:\\aaaa\\中文.zip","E:\\aaaa\\中文","GBK"); } 实例: 将E:\\aaaa\\中文.zip解压到E:\\aaaa\\中文目录下
Java操作Zip文件主要涉及到对文件和目录的压缩与解压缩,以及在必要时对压缩文件进行加密处理。这里我们重点讨论使用两个库:`zip4j`和`Apache Ant`来实现这些功能。 1. **zip4j库**:`zip4j-1.3.2.jar`是一个用...
在Linux操作系统中,`zip`和`unzip`是两个常用的命令行工具,用于压缩和解压文件。RPM(Red Hat Package Manager)是Linux发行版中广泛使用的软件包管理器,尤其在基于RPM的系统如CentOS、Fedora等上。本压缩包包含...
在Java编程语言中,处理ZIP压缩和解压缩是常见的任务,尤其在文件管理和数据传输方面。ZIP是一种广泛使用的文件格式,用于将多个文件打包到一个单一的可移植档案中,以便于存储、传输或备份。以下是一些关于Java中...
在Java编程环境中,处理压缩文件,特别是ZIP格式的文件...总的来说,解压包含中文文件名的ZIP文件在Java中可以通过正确设置编码和使用适当的库或工具来实现。理解文件名编码和选择合适的处理方法是解决这类问题的关键。
在Java编程环境中,处理ZIP格式的压缩包是一项常见的任务,无论是为了读取文件内容、打包文件还是进行数据传输。本文将深入探讨如何使用Java来解压ZIP格式的压缩包,并提供相关的源码参考。 首先,我们需要了解Java...
我们将讨论核心的Java API,如`java.util.zip`包中的类,并通过一个名为`CompressFileUtils`的工具类来展示如何实现文件的解压缩功能。 首先,`java.util.zip`包提供了几个关键类,用于处理各种压缩格式,如`...
本文将详细讲解如何使用Java进行Zip文件的压缩与解压缩操作,并结合给定的标签"源码"和"工具"来探讨实际应用场景。 一、Java Zip压缩 1. 使用`ZipOutputStream`类进行压缩: `ZipOutputStream`是Java提供的用于...
本文将深入探讨如何使用Java实现这一功能,同时也会提及与ActionScript 3(AS3)进行加密解密的相关知识。 首先,我们要了解Java中的ZipOutputStream和ZipInputStream类,它们是Java标准库提供的用于创建和读取ZIP...
在本篇中,我们将深入探讨如何使用Java API来实现ZIP文件的解压缩,以及可能需要用到的第三方库。 首先,Java标准库(Java Standard Library)自身提供了对ZIP文件的支持。在`java.util.zip`包中,有两个关键类用于...
在Java编程中,处理压缩和解压缩ZIP文件是一项常见的任务,尤其当文件中包含中文字符时,可能会遇到中文乱码的问题。这是因为Java的标准库在处理非ASCII编码时可能存在不足。本篇文章将详细介绍如何使用Java标准库...
### Java 解压ZIP文件知识点详解 #### 一、概述 在Java编程中,解压缩ZIP文件是一项常见的任务,尤其在处理归档文件或备份时。本文将深入探讨如何使用Java来解压ZIP文件,并通过一个具体的示例代码来展示整个过程。...
通过上述示例代码,我们可以清晰地了解到如何使用 Java 实现目录文件的 ZIP 压缩与解压。该示例不仅提供了基础的压缩解压逻辑,还包含了递归处理文件夹的能力,使得程序能够应对更复杂的场景需求。
本文将详细介绍如何使用Java语言实现ZIP和RAR格式文件的压缩与解压缩操作。文章通过具体的代码示例展示了整个处理流程,并针对不同格式文件的特点进行了优化。 #### ZIP文件的压缩与解压缩 ##### 压缩原理与API...
首先,让我们来看一下`JavaZip.java`这个文件。它很可能包含了一个示例程序,演示了如何使用Java API来压缩和解压缩文件。在Java中,我们通常使用`ZipOutputStream`来创建ZIP文件,`ZipInputStream`来读取和解压缩...