Package org.apache.commons.compress.compressors.xz

# Class XZCompressorInputStream

java.lang.Object
java.io.InputStream
org.apache.commons.compress.compressors.CompressorInputStream
org.apache.commons.compress.compressors.xz.XZCompressorInputStream

All Implemented Interfaces:
  `Closeable`, `AutoCloseable`, `InputStreamStatistics`

public class XZCompressorInputStream extends CompressorInputStream implements InputStreamStatistics
XZ decompressor.

Since:
  1.4

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `XZCompressorInputStream(InputStream inputStream)`
  Creates a new input stream that decompresses XZ-compressed data from the specified input stream.
  `XZCompressorInputStream(InputStream inputStream, boolean decompressConcatenated)`
  Creates a new input stream that decompresses XZ-compressed data from the specified input stream.
  `XZCompressorInputStream(InputStream inputStream, boolean decompressConcatenated, int memoryLimitInKb)`
  Creates a new input stream that decompresses XZ-compressed data from the specified input stream.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `available()`
  `void`
  `close()`
  `long`
  `getCompressedCount()`
  Gets the amount of raw or compressed bytes read by the stream.
  `static boolean`
  `matches(byte[] signature, int length)`
  Checks if the signature matches what is expected for a .xz file.
  `int`
  `read()`
  `int`
  `read(byte[] buf, int off, int len)`
  `long`
  `skip(long n)`

  ### Methods inherited from class org.apache.commons.compress.compressors.CompressorInputStream

  `count, count, getBytesRead, getCount, getUncompressedCount, pushedBackBytes`

  ### Methods inherited from class java.io.InputStream

  `mark, markSupported, read, reset`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface org.apache.commons.compress.utils.InputStreamStatistics

  `getUncompressedCount`

- ## Constructor Details

  - ### XZCompressorInputStream

    public XZCompressorInputStream(InputStream inputStream) throws IOException
    Creates a new input stream that decompresses XZ-compressed data from the specified input stream. This doesn't support concatenated .xz files.
    Parameters:
      `inputStream` - where to read the compressed data
    Throws:
      `IOException` - if the input is not in the .xz format, the input is corrupt or truncated, the .xz headers specify options that are not supported by this implementation, or the underlying `inputStream` throws an exception

  - ### XZCompressorInputStream

    public XZCompressorInputStream(InputStream inputStream, boolean decompressConcatenated) throws IOException
    Creates a new input stream that decompresses XZ-compressed data from the specified input stream.
    Parameters:
      `inputStream` - where to read the compressed data
      `decompressConcatenated` - if true, decompress until the end of the input; if false, stop after the first .xz stream and leave the input position to point to the next byte after the .xz stream
    Throws:
      `IOException` - if the input is not in the .xz format, the input is corrupt or truncated, the .xz headers specify options that are not supported by this implementation, or the underlying `inputStream` throws an exception

  - ### XZCompressorInputStream

    public XZCompressorInputStream(InputStream inputStream, boolean decompressConcatenated, int memoryLimitInKb) throws IOException
    Creates a new input stream that decompresses XZ-compressed data from the specified input stream.
    Parameters:
      `inputStream` - where to read the compressed data
      `decompressConcatenated` - if true, decompress until the end of the input; if false, stop after the first .xz stream and leave the input position to point to the next byte after the .xz stream
      `memoryLimitInKb` - memory limit used when reading blocks. If the estimated memory limit is exceeded on `read()`, a `MemoryLimitException` is thrown.
    Throws:
      `IOException` - if the input is not in the .xz format, the input is corrupt or truncated, the .xz headers specify options that are not supported by this implementation, or the underlying `inputStream` throws an exception
    Since:
      1.14

- ## Method Details

  - ### matches

    public static boolean matches(byte[] signature, int length)
    Checks if the signature matches what is expected for a .xz file.
    Parameters:
      `signature` - the bytes to check
      `length` - the number of bytes to check
    Returns:
      true if signature matches the .xz magic bytes, false otherwise

  - ### available

    public int available() throws IOException
    Overrides:
      `available` in class `InputStream`
    Throws:
      `IOException`

  - ### close

    public void close() throws IOException
    Specified by:
      `close` in interface `AutoCloseable`
    Specified by:
      `close` in interface `Closeable`
    Overrides:
      `close` in class `InputStream`
    Throws:
      `IOException`

  - ### getCompressedCount

    public long getCompressedCount()
    Description copied from interface: `InputStreamStatistics`
    Gets the amount of raw or compressed bytes read by the stream.
    Specified by:
      `getCompressedCount` in interface `InputStreamStatistics`
    Returns:
      the amount of raw or compressed bytes read by the stream.
    Since:
      1.17

  - ### read

    public int read() throws IOException
    Specified by:
      `read` in class `InputStream`
    Throws:
      `IOException`

  - ### read

    public int read(byte[] buf, int off, int len) throws IOException
    Overrides:
      `read` in class `InputStream`
    Throws:
      `IOException`

  - ### skip

    public long skip(long n) throws IOException
    Overrides:
      `skip` in class `InputStream`
    Throws:
      `IOException`