public class GzipCompressorInputStream extends CompressorInputStream implements InputStreamStatistics
This supports decompressing concatenated .gz files which is important when decompressing standalone .gz files.
 GZIPInputStream doesn't decompress concatenated .gz
 files: it stops after the first member and silently ignores the rest.
 It doesn't leave the read position to point to the beginning of the next
 member, which makes it difficult workaround the lack of concatenation
 support.
 
 Instead of using GZIPInputStream, this class has its own .gz
 container format decoder. The actual decompression is done with
 Inflater.
 
If you use the constructor GzipCompressorInputStream(in)
 or GzipCompressorInputStream(in, false) with some InputStream in then read() will return -1 as soon
 as the first internal member has been read completely. The stream
 in will be positioned at the start of the second gzip
 member if there is one.
If you use the constructor GzipCompressorInputStream(in,
 true) with some InputStream in then read()
 will return -1 once the stream in has been exhausted. The
 data read from a stream constructed this way will consist of the
 concatenated data of all gzip members contained inside in.
| Constructor and Description | 
|---|
| GzipCompressorInputStream(InputStream inputStream)Constructs a new input stream that decompresses gzip-compressed data
 from the specified input stream. | 
| GzipCompressorInputStream(InputStream inputStream,
                         boolean decompressConcatenated)Constructs a new input stream that decompresses gzip-compressed data
 from the specified input stream. | 
| Modifier and Type | Method and Description | 
|---|---|
| void | close()Closes the input stream (unless it is System.in). | 
| long | getCompressedCount() | 
| GzipParameters | getMetaData()Provides the stream's meta data - may change with each stream
 when decompressing concatenated streams. | 
| static boolean | matches(byte[] signature,
       int length)Checks if the signature matches what is expected for a .gz file. | 
| int | read() | 
| int | read(byte[] b,
    int off,
    int len) | 
count, count, getBytesRead, getCount, getUncompressedCount, pushedBackBytesavailable, mark, markSupported, read, reset, skipclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetUncompressedCountpublic GzipCompressorInputStream(InputStream inputStream) throws IOException
 This is equivalent to
 GzipCompressorInputStream(inputStream, false) and thus
 will not decompress concatenated .gz files.
inputStream - the InputStream from which this object should
                     be created ofIOException - if the stream could not be createdpublic GzipCompressorInputStream(InputStream inputStream, boolean decompressConcatenated) throws IOException
 If decompressConcatenated is false:
 This decompressor might read more input than it will actually use.
 If inputStream supports mark and
 reset, then the input position will be adjusted
 so that it is right after the last byte of the compressed stream.
 If mark isn't supported, the input position will be
 undefined.
inputStream - the InputStream from which this object should
                     be created ofdecompressConcatenated - if true, decompress until the end of the input;
                     if false, stop after the first .gz memberIOException - if the stream could not be createdpublic GzipParameters getMetaData()
public int read() throws IOException
read in class InputStreamIOExceptionpublic int read(byte[] b, int off, int len) throws IOException
read in class InputStreamIOExceptionpublic static boolean matches(byte[] signature, int length)
signature - the bytes to checklength - the number of bytes to checkpublic void close() throws IOException
close in interface Closeableclose in interface AutoCloseableclose in class InputStreamIOExceptionpublic long getCompressedCount()
getCompressedCount in interface InputStreamStatisticsCopyright © 2018 The Apache Software Foundation. All rights reserved.