Class Zip::ZipInputStream
In: lib/zip/zip.rb
Parent: Object

ZipInputStream is the basic class for reading zip entries in a zip file. It is possible to create a ZipInputStream object directly, passing the zip file name to the constructor, but more often than not the ZipInputStream will be obtained from a ZipFile (perhaps using the ZipFileSystem interface) object for a particular entry in the zip archive.

A ZipInputStream inherits IOExtras::AbstractInputStream in order to provide an IO-like interface for reading from a single zip entry. Beyond methods for mimicking an IO-object it contains the method get_next_entry for iterating through the entries of an archive. get_next_entry returns a ZipEntry object that describes the zip entry the ZipInputStream is currently reading from.

Example that creates a zip archive with ZipOutputStream and reads it back again with a ZipInputStream.

  require 'zip/zip'

  Zip::ZipOutputStream::open("my.zip") {
    |io|

    io.put_next_entry("first_entry.txt")
    io.write "Hello world!"

    io.put_next_entry("adir/first_entry.txt")
    io.write "Hello again!"
  }

  Zip::ZipInputStream::open("my.zip") {
    |io|

    while (entry = io.get_next_entry)
      puts "Contents of #{entry.name}: '#{io.read}'"
    end
  }

java.util.zip.ZipInputStream is the original inspiration for this class.

Methods

close   eof   eof?   get_next_entry   input_finished?   new   open   open_entry   produce_input   rewind   sysread  

Included Modules

IOExtras::AbstractInputStream

Public Class methods

Opens the indicated zip file. An exception is thrown if the specified offset in the specified filename is not a local zip entry header.

Same as initialize but if a block is passed the opened stream is passed to the block and closed when the block returns.

Public Instance methods

eof?()

Alias for eof

Returns a ZipEntry object. It is necessary to call this method on a newly created ZipInputStream before reading from the first entry in the archive. Returns nil when there are no more entries.

Rewinds the stream to the beginning of the current entry

Protected Instance methods

[Validate]