Zlib::GzipReader is the class for reading a gzipped file. GzipReader should be used an IO, or -IO-lie, object.

  Zlib::GzipReader.open('hoge.gz') {|gz|
    print gz.read

  File.open('hoge.gz') do |f|
    gz = Zlib::GzipReader.new(f)
    print gz.read

  # TODO: test these.  Are they equivalent?  Can GzipReader.new take a
  # block?

<a href="/ruby/Method">Method</a> Catalogue

The following methods in Zlib::GzipReader are just like their counterparts in IO, but they raise Zlib::Error or Zlib::GzipFile::Error exception if an error was found in the gzip file.

Be careful of the footer of the gzip file. A gzip file has the checksum of pre-compressed data in its footer. GzipReader checks all uncompressed data against that checksum at the following cases, and if it fails, raises Zlib::GzipFile::NoFooter, Zlib::GzipFile::CRCError, or Zlib::GzipFile::LengthError exception.

  • When an reading request is received beyond the end of file (the end of compressed data). That is, when Zlib::GzipReader#read, Zlib::GzipReader#gets, or some other methods for reading returns nil.
  • When <a href="/ruby/Zlib/GzipFile/close">Zlib::GzipFile#close</a> method is called after the object reaches the end of file.
  • When <a href="/ruby/Zlib/GzipReader/unused">Zlib::GzipReader#unused</a> method is called after the object reaches the end of file.

The rest of the methods are adequately described in their own documentation.

Show files where this class is defined (1 file)
Register or log in to add new notes.