import java.io.*;
import java.util.zip.*;
/*
* Creates a ZIP file to be read by Winzip or Winrar
*/
public class WriteZip {
public static void main(String[] args) {
// lets put 2 files
String[] filename = {"file1.dat", "file2.dat"};
// create a line of text for the files
byte[] buffer = new byte[27]; // the alphabet + <line feed?
byte letter = 'a';
for(int i = 0; i < 26; ++i)
buffer[i] = letter++;
buffer[26] = '\n'; // and an end of line
try {
// Create the ZIP file
String outFilename = "myzip.zip";
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(outFilename));
// Compress two files
for (int i=0; i<filename.length; i++) {
// Add ZIP entry to output stream.
out.putNextEntry(new ZipEntry(filename[i]));
// Transfer 10 lines into the file
for(int j = 0; j < 10; ++j)
out.write(buffer);
// Close the file
out.closeEntry();
}
// Close the ZIP file
out.close();
} catch (IOException e) {
System.out.println("Problem writing ZIP file: " + e);
}
}
}
import java.io.*;
import java.util.zip.*;
public class ReadZip {
public static void main(String[] args) {
try {
// Open the ZIP file
String inFilename = "myzip.zip";
ZipInputStream in = new ZipInputStream(new FileInputStream(inFilename));
// While we have other entry
ZipEntry entry = in.getNextEntry();
while(entry != null){
System.out.println("Reading: " + entry.getName());
// Transfer bytes from the ZIP file to the output file
// OK I know that my file contains 10 * 27 bytes the reading might
// be more versatile and test if there is more bytes in the file
byte[] buf = new byte[1024];
int len = in.read(buf);
String theFile = new String(buf, 0, len);
System.out.println(theFile);
entry = in.getNextEntry();
} // end while
// Close the ZIP file
in.close();
} catch (IOException e) {
System.out.println("Probel reading back the ZIP file: " + e);
}
}
}
参考:http://www.dreamincode.net/forums/topic/244086-write-and-read-zip-file-from-java/
相关推荐
本文将详细探讨如何在C++中以编程方式读写ZIP文件。 首先,你需要一个库来处理ZIP文件,因为C++标准库并不直接支持ZIP操作。一种常用的库是libzip,它提供了读取、创建、修改和删除ZIP文件的功能。安装libzip后,你...
本文将深入探讨如何利用ZipLib库在C++中进行ZIP文件的读写操作。ZipLib是一个用C编写的库,用于处理ZIP档案,而我们的任务是通过在C++中对其进行封装,以便更方便地进行压缩和解压缩。 首先,我们需要理解ZIP文件...
5. **电源故障**:在读写ZIP文件的过程中突然断电,可能会造成文件系统错误,导致ZIP文件损坏。 **检测ZIP文件损坏的方法** 1. **尝试解压**:最简单的方法是尝试用常用的压缩软件(如WinRAR、7-Zip)进行解压。...
它提供了一套更高级的接口,使得开发者可以更容易地读写ZIP文件,包括添加、删除、提取文件以及处理密码保护的ZIP文件等。 3. **在VS2013中使用zlib和minizip**:为了在Visual Studio 2013中使用这两个库,首先你...
Java的`java.util.zip`包提供了对ZIP文件的支持,包括`ZipInputStream`和`ZipOutputStream`类用于读写ZIP文件,以及`ZipEntry`类来代表ZIP文件中的单个条目。当我们尝试用这些类解压含有中文名的文件时,如果未正确...
`ZipArchive`是用于读写ZIP文件的主要类。你可以通过创建`ZipArchive`实例来打开一个ZIP文件,然后访问或修改其中的条目。例如: ```csharp using System.IO.Compression; // 打开一个ZIP文件 using (ZipArchive ...
ZIP包内的文件可以通过各种编程语言的库进行解压,例如在Qt框架中,可以使用QZipReader和QZipWriter类来读写ZIP文件。 "升级"、"updata"和"update"标签表明这个HTTP下载可能与软件更新有关。许多软件会通过HTTP下载...
这些代码可能使用了某种编程语言(如C++、Python或Java),并封装了对ZIP文件格式的处理逻辑,包括读写ZIP文件头部信息、执行DEFLATE压缩和解压等核心函数。 6. 安全性与隐私: 尽管ZIP文件在传输和存储方面非常...
例如,zlib库主要用于数据压缩,而minizip库则扩展了zlib,增加了读写ZIP文件的能力。在VC工程中,我们需要链接这些库,并在源代码中调用相应的函数。 解压缩ZIP文件的基本步骤包括: 1. **初始化**:打开ZIP文件...
在处理 ZIP 文件时,开发人员应当遵循最佳实践,例如使用已知安全的库(如 libarchive)来读写 ZIP 文件,避免因代码错误而引入漏洞。 5. **用户教育**:对于最终用户,他们需要知道不要随便下载和解压未知来源的 ...
ZipStorer是一个开源的C#库,专门用于读写ZIP文件,不依赖.NET Framework的内置压缩功能。通过使用ZipStorer,开发者可以控制文件的压缩级别、添加注释、设置密码等高级特性。如果"ZipStorerTest"项目确实采用了...
6. **使用`libzip`**:`libzip`是一个流行的C库,用于读写ZIP文件。它提供了一系列函数,如`zip_open`用于打开ZIP文件,`zip_fopen`用于打开ZIP内的文件,`zip_entry_read`用于读取数据,`zip_entry_write`用于写入...
ZLIB提供了C语言接口,可以在MFC中方便地集成,用于读写ZIP文件。 4. **UnzipFile.cpp和ZipFile.cpp**: 这两个文件很可能是实现ZIP文件解压和压缩功能的具体代码。`UnzipFile.cpp`可能包含了从ZIP文件中提取单个...
ZLIB提供了基本的压缩和解压缩功能,而MINIZIP则是在ZLIB基础上添加了读写ZIP文件的接口,使得操作ZIP文件更为便捷。 3. **压缩算法**:DEFLATE算法是ZIP文件最常使用的压缩方法,它结合了LZ77(一种滑动窗口压缩)...
能够把 Zip文件或内存缓存到新的或现有的 ...直接读写多个部分的 zip文件到硬盘。 从另一个 zip文件的内容或合并两个 zip文件到一起来更新一个 zip文件 可选择后台处理,使你的代码可以在 Xceed Zip工作时继续执行。
zlib是一个跨平台的C库,提供了DEFLATE压缩和解压缩功能,同时也支持读写Zip文件。了解这些库的工作原理,通过阅读源码,有助于提升对压缩技术的理解。 5. **错误处理和性能优化**:源码集合中可能包括了错误处理...
1. Java `java.util.zip`包的使用:理解`ZipInputStream`、`ZipOutputStream`和`ZipEntry`的API,掌握读写ZIP文件的方法。 2. 字符串处理:熟悉Java `String`类的各种方法,了解字符编码的概念,如ASCII、GBK、UTF-8...
例如,Python中的`zipfile`模块提供了读写ZIP文件的功能,Java的`java.util.zip`包则提供了类似的支持。这些库允许程序自动化处理ZIP文件,包括创建、修改和提取内容。 总的来说,ZIP作为一种强大的数据压缩和归档...
例如,Python中的`zipfile`模块可以方便地读写ZIP文件,进行压缩和解压缩操作。在Java中,我们可以使用`java.util.zip`包,而在.NET框架中,`System.IO.Compression`命名空间提供了类似的功能。 对于"第6章"这个...
这些源代码可能包含了解压缩和打包ZIP文件所需的基本函数和类,支持读写ZIP文件、添加或删除文件等功能。 从标签“ZIP源代码”我们可以推断,这个压缩包的核心内容是与处理ZIP文件相关的编程资源。 压缩包内的文件...