📅  最后修改于: 2023-12-03 15:28:05.926000             🧑  作者: Mango
Java Zip是Java语言中用于压缩和解压缩文件的类库。通过使用Java Zip类,开发人员可以创建、读取和修改ZIP文件。ZipOutputStream类和ZipInputStream类提供了压缩和解压缩ZIP文件的功能。
ZipOutputStream类是Java中用于压缩文件的类。以下是使用ZipOutputStream类创建和压缩ZIP文件的示例:
import java.io.*;
import java.util.zip.*;
public class ZipDemo {
public static void main(String[] args) {
try {
FileOutputStream fos = new FileOutputStream("sample.zip");
ZipOutputStream zos = new ZipOutputStream(fos);
ZipEntry ze = new ZipEntry("sample.txt");
zos.putNextEntry(ze);
FileInputStream in = new FileInputStream("sample.txt");
int len;
byte[] buffer = new byte[1024];
while ((len = in.read(buffer)) > 0) {
zos.write(buffer, 0, len);
}
in.close();
zos.closeEntry();
zos.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
在上面的示例中,ZipOutputStream类的实例被创建,并使用putNextEntry()方法创建了一个新的ZipEntry。然后,使用write()方法写入要压缩的数据,并使用closeEntry()方法关闭ZipEntry。最后,使用close()方法关闭ZipOutputStream。
ZipInputStream类是Java中用于解压缩ZIP文件的类。以下是使用ZipInputStream类解压缩ZIP文件的示例:
import java.io.*;
import java.util.zip.*;
public class UnZipDemo {
public static void main(String[] args) {
try {
FileInputStream fis = new FileInputStream("sample.zip");
ZipInputStream zis = new ZipInputStream(fis);
ZipEntry ze = zis.getNextEntry();
while (ze != null) {
String fileName = ze.getName();
FileOutputStream fos = new FileOutputStream(fileName);
int len;
byte[] buffer = new byte[1024];
while ((len = zis.read(buffer)) > 0) {
fos.write(buffer, 0, len);
}
fos.close();
ze = zis.getNextEntry();
}
zis.closeEntry();
zis.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
在上面的示例中,ZipInputStream类的实例被创建,并使用getNextEntry()方法获取下一个ZipEntry。然后,使用read()方法读取ZipEntry中的数据,并将其写入文件中。最后,使用closeEntry()方法关闭当前的ZipEntry。最终,使用close()方法关闭ZipInputStream。
Java Zip是Java中用于压缩和解压缩文件的类库。通过使用ZipOutputStream类和ZipInputStream类,开发人员可以在Java应用程序中轻松地创建、读取和修改ZIP文件。