关键字: 转载自http://www.java2000.net/
jdk提供了Zip相关的类方便的实现压缩和解压缩。使用方法很简单。下边分别是压缩和解压缩的简单事例
1,压缩的
2,解压缩的。
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();
- }
- }
- }
- 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();
- }
- }
- }
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标准库...
Java8 Zip 压缩与解压缩的实现 在 Java8 中,压缩和解压缩都是非常重要的操作,特别是在网络上传输文件或存储文件时。今天,我们将探讨 Java8 中的 Zip 压缩和解压缩的实现。 Zip 压缩 Zip 压缩是将多个文件或...
### Java 解压ZIP文件知识点详解 #### 一、概述 在Java编程中,解压缩ZIP文件是一项常见的任务,尤其在处理归档文件或备份时。本文将深入探讨如何使用Java来解压ZIP文件,并通过一个具体的示例代码来展示整个过程。...
通过上述示例代码,我们可以清晰地了解到如何使用 Java 实现目录文件的 ZIP 压缩与解压。该示例不仅提供了基础的压缩解压逻辑,还包含了递归处理文件夹的能力,使得程序能够应对更复杂的场景需求。
本文将详细介绍如何使用Java语言实现ZIP和RAR格式文件的压缩与解压缩操作。文章通过具体的代码示例展示了整个处理流程,并针对不同格式文件的特点进行了优化。 #### ZIP文件的压缩与解压缩 ##### 压缩原理与API...