java.util.zip.ZipFile.getInputStream() Method Example

The java.util.zip.ZipFile.getInputStream(ZipEntry entry) method returns an input stream for reading the contents of the specified zip file entry.
Following is the declaration for java.util.zip.ZipFile.getInputStream(ZipEntry entry) method.
public InputStream getInputStream(ZipEntry entry)
   throws IOException

entry − the zip file entry.
entry − the zip file entry.
the input stream for reading the contents of the specified zip file entry.
ZipException  − if a ZIP format error has occurred.
ZipException  − if a ZIP format error has occurred.
IOException  − if an I/O error has occurred.
IOException  − if an I/O error has occurred.
IllegalStateException  − if an I/O error has occurred.
IllegalStateException  − if an I/O error has occurred.
Create a file Hello.txt in D:> test >  directory with the following content.
This is an example.

The following example shows the usage of java.util.zip.ZipFile.getInputStream(ZipEntry entry) method.
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 ZipFileDemo {
   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);
      zipEntry.setComment("This is a sample 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); 
    
      try { 
         ZipEntry entry = file.getEntry(SOURCE_FILE);
         if(entry != null){
            System.out.printf("File: %s Size %d Modified on %TD %n", 
               entry.getName(), entry.getSize(), 
               new Date(entry.getTime()));
            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(); 
      } 
   }
}
Let us compile and run the above program, this will produce the following result −
File: D:\test\Hello.txt Size 1024 Modified on 05/22/17 
Zip file D:\test\Hello.txt extracted successfully.

 Print
 Add Notes
 Bookmark this page