Exemple de méthode java.util.zip.ZipEntry.getCompressedSize ()

La description

le java.util.zip.ZipEntry.getCompressedSize()La méthode renvoie la taille des données d'entrée compressées, ou -1 si elle n'est pas connue. Dans le cas d'une entrée stockée, la taille compressée sera la même que la taille non compressée de l'entrée.

Déclaration

Voici la déclaration pour java.util.zip.ZipEntry.getCompressedSize() méthode.

public long getCompressedSize()

Retour

la taille des données d'entrée compressées, ou -1 si inconnue

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.ZipEntry.getCompressedSize ().

package com.tutorialspoint;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import java.util.Enumeration;
import java.util.zip.Adler32;
import java.util.zip.CheckedOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipOutputStream;

public class ZipEntryDemo {
   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);

      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();
      fin.close();
      zout.close();
   }

   private static void readZipFile() throws IOException{
      final ZipFile file = new ZipFile(TARGET_FILE); 
      System.out.println("Iterating over zip file : " + TARGET_FILE);
      try { 
         final Enumeration<? extends ZipEntry> entries = file.entries(); 
         while (entries.hasMoreElements()) { 
            final ZipEntry entry = entries.nextElement(); 
            System.out.printf("File: %s Size %d Modified on %TD %n", 
               entry.getName(), entry.getSize(), 
                  new Date(entry.getTime())); 
            System.out.println(entry.getCompressedSize());
            extractFile(entry, file.getInputStream(entry)); 
         } 
         System.out.printf("Zip file %s extracted successfully.", SOURCE_FILE); 
      } 
      finally { 
         file.close(); 
      }
   }

   private static void extractFile(final ZipEntry entry, InputStream is) 
      throws IOException {
      FileOutputStream fos = null; 
      try { 
         fos = new FileOutputStream(entry.getName()); 
         final byte[] buf = new byte[1024]; 
         int read = 0; 
         int length; 
         while ((length = is.read(buf, 0, buf.length)) >= 0) { 
            fos.write(buf, 0, length); 
         } 
      } catch (IOException ioex) { 
         fos.close(); 
      } 
   }
}

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

Iterating over zip file : D:\test\Hello.zip
File: D:\test\Hello.txt Size 19 Modified on 05/20/17
19
Zip file D:\test\Hello.txt extracted successfully.
Impression