📅  最后修改于: 2023-12-03 14:42:17.090000             🧑  作者: Mango
Zip文件是一种常见的文件格式,它把多个文件压缩成单个文件。Java提供了许多有用的资源来创建、读取和编辑Zip文件。在本文中,我们将介绍一些最有用和最流行的Java Zip资源。
ZipOutputStream和ZipInputStream是用来写入和读取Zip文件的Java类。下面的代码展示了如何使用ZipOutputStream来创建Zip文件:
try (FileOutputStream outputStream = new FileOutputStream("example.zip");
ZipOutputStream zipOutputStream = new ZipOutputStream(outputStream)) {
File fileToZip = new File("example.txt");
ZipEntry zipEntry = new ZipEntry(fileToZip.getName());
zipOutputStream.putNextEntry(zipEntry);
FileInputStream fileInputStream = new FileInputStream(fileToZip);
byte[] bytes = new byte[1024];
int length;
while ((length = fileInputStream.read(bytes)) >= 0) {
zipOutputStream.write(bytes, 0, length);
}
zipOutputStream.closeEntry();
} catch (IOException e) {
e.printStackTrace();
}
上述代码使用ZipOutputStream将一个文件创建成Zip文件并保存到磁盘上。可以使用ZipInputStream来解压缩这个文件并读取其中的文件。需要注意的是,为了方便处理,这里用了Java 7引进的try-with-resource语法。
Apache Commons Compress是一个流行的Java库,它提供了许多用于创建、读取和编辑归档文件的工具,包括Zip格式。
下面的代码展示了如何使用Apache Commons Compress来创建Zip文件:
try (FileOutputStream outputStream = new FileOutputStream("example.zip");
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(outputStream);
ZipArchiveOutputStream zipOutputStream = new ZipArchiveOutputStream(bufferedOutputStream)) {
File fileToZip = new File("example.txt");
ZipArchiveEntry zipEntry = new ZipArchiveEntry(fileToZip.getName());
zipOutputStream.putArchiveEntry(zipEntry);
FileInputStream fileInputStream = new FileInputStream(fileToZip);
byte[] bytes = new byte[1024];
int length;
while ((length = fileInputStream.read(bytes)) >= 0) {
zipOutputStream.write(bytes, 0, length);
}
zipOutputStream.closeArchiveEntry();
} catch (IOException e) {
e.printStackTrace();
}
Zip4j是一个流行的开源Java库,它提供了很多用于创建、读取和编辑Zip文件的工具。下面的代码展示了如何使用Zip4j来创建Zip文件:
try {
ZipFile zipFile = new ZipFile("example.zip");
File fileToAdd = new File("example.txt");
ZipParameters parameters = new ZipParameters();
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
zipFile.addFile(fileToAdd, parameters);
} catch (ZipException e) {
e.printStackTrace();
}
在本文中,我们介绍了一些最有用和最流行的Java Zip资源,包括ZipOutputStream、ZipInputStream、Apache Commons Compress和Zip4j。这些资源可以帮助你创建、读取和编辑Zip文件,结合你的具体需求选择最合适的工具吧。