📜  讨论Java Zip(1)

📅  最后修改于: 2023-12-03 15:28:05.926000             🧑  作者: Mango

讨论Java Zip

Java Zip是Java语言中用于压缩和解压缩文件的类库。通过使用Java Zip类,开发人员可以创建、读取和修改ZIP文件。ZipOutputStream类和ZipInputStream类提供了压缩和解压缩ZIP文件的功能。

ZipOutputStream类

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类

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文件。