Exemple de méthode java.util.zip.ZipOutputStream.setMethod ()

le java.util.zip.ZipOutputStream.setMethod(int method)La méthode définit la méthode de compression par défaut pour les entrées suivantes. Cette valeur par défaut sera utilisée chaque fois que la méthode de compression n'est pas spécifiée pour une entrée de fichier ZIP individuelle et est initialement définie sur DEFLATED.

Déclaration

Voici la déclaration pour java.util.zip.ZipOutputStream.setMethod(int method) méthode.

public void setMethod(int method)

Paramètres

  • method - la méthode de compression par défaut.

Exceptions

  • IllegalArgumentException - si la méthode de compression n'est pas valide.

Prérequis

Créez un fichier Hello.txt dans D:> test > répertoire avec le contenu suivant.

This is an example.

Exemple

L'exemple suivant montre l'utilisation de la méthode java.util.zip.ZipOutputStream.setMethod (méthode int).

package com.tutorialspoint;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;
import java.util.zip.Adler32;
import java.util.zip.CheckedOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;

public class ZipOutputStreamDemo {
   private static String SOURCE_FILE = "D:\\test\\Hello.txt";
   private static String TARGET_FILE = "D:\\test\\Hello.zip";

   public static void main(String[] args) {
      try {
         createZipFile();
         readZipFile();
      } catch(IOException ioe) {
         System.out.println("IOException : " + ioe);
      }
   }

   private static void createZipFile() throws IOException{
      FileOutputStream fout = new FileOutputStream(TARGET_FILE);
      CheckedOutputStream checksum = new CheckedOutputStream(fout, new Adler32());
      ZipOutputStream zout = new ZipOutputStream(checksum);
      zout.setMethod(ZipOutputStream.DEFLATED);
      FileInputStream fin = new FileInputStream(SOURCE_FILE);
      ZipEntry zipEntry = new ZipEntry(SOURCE_FILE);
      zout.putNextEntry(zipEntry);
      int length;
      byte[] buffer = new byte[1024];
      while((length = fin.read(buffer)) > 0) {
         zout.write(buffer, 0, length);
      }

      zout.closeEntry();
      zout.finish();
      fin.close();
      zout.close();
   }

   private static void readZipFile() throws IOException{
      ZipInputStream zin = new ZipInputStream(new FileInputStream(TARGET_FILE)); 

      ZipEntry entry;
      while((entry = zin.getNextEntry())!=null){
         System.out.printf("File: %s Modified on %TD %n", 
         entry.getName(), new Date(entry.getTime()));
         extractFile(entry, zin); 
         System.out.printf("Zip file %s extracted successfully.", SOURCE_FILE);
         zin.closeEntry();
      }
      zin.close();
   }

   private static void extractFile(final ZipEntry entry, ZipInputStream is) 
      throws IOException {
      FileOutputStream fos = null; 
      try { 
         fos = new FileOutputStream(entry.getName()); 
         while(is.available() != 0){
            fos.write(is.read()); 
         }
      } catch (IOException ioex) { 
         fos.close(); 
      } 
   }
}

Compilons et exécutons le programme ci-dessus, cela produira le résultat suivant -

Zip File: D:\test\Hello.zip, Contains 1 file(s). 
File: D:\test\Hello.txt Size 1026 Modified on 05/22/17 
Zip file D:\test\Hello.txt extracted successfully.
Impression