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

# Class XZCompressorOutputStream

java.lang.Object
java.io.OutputStream
org.apache.commons.compress.compressors.CompressorOutputStream
org.apache.commons.compress.compressors.xz.XZCompressorOutputStream

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

public class XZCompressorOutputStream extends CompressorOutputStream
XZ compressor.

Since:
  1.4

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `XZCompressorOutputStream(OutputStream outputStream)`
  Creates a new XZ compressor using the default LZMA2 options.
  `XZCompressorOutputStream(OutputStream outputStream, int preset)`
  Creates a new XZ compressor using the specified LZMA2 preset level.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `close()`
  `void`
  `finish()`
  Finishes compression without closing the underlying stream.
  `void`
  `flush()`
  Flushes the encoder and calls `outputStream.flush()`.
  `void`
  `write(byte[] buf, int off, int len)`
  `void`
  `write(int b)`

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

  `write`

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

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

- ## Constructor Details

  - ### XZCompressorOutputStream

    public XZCompressorOutputStream(OutputStream outputStream) throws IOException
    Creates a new XZ compressor using the default LZMA2 options. This is equivalent to `XZCompressorOutputStream(outputStream, 6)`.
    Parameters:
      `outputStream` - the stream to wrap
    Throws:
      `IOException` - on error

  - ### XZCompressorOutputStream

    public XZCompressorOutputStream(OutputStream outputStream, int preset) throws IOException
    Creates a new XZ compressor using the specified LZMA2 preset level.

    The presets 0-3 are fast presets with medium compression. The presets 4-6 are fairly slow presets with high compression. The default preset is 6.

    The presets 7-9 are like the preset 6 but use bigger dictionaries and have higher compressor and decompressor memory requirements. Unless the uncompressed size of the file exceeds 8 MiB, 16 MiB, or 32 MiB, it is waste of memory to use the presets 7, 8, or 9, respectively.

    Parameters:
      `outputStream` - the stream to wrap
      `preset` - the preset
    Throws:
      `IOException` - on error

- ## Method Details

  - ### close

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

  - ### finish

    public void finish() throws IOException
    Finishes compression without closing the underlying stream. No more data can be written to this stream after finishing.
    Throws:
      `IOException` - on error

  - ### flush

    public void flush() throws IOException
    Flushes the encoder and calls `outputStream.flush()`. All buffered pending data will then be decompressible from the output stream. Calling this function very often may increase the compressed file size a lot.
    Specified by:
      `flush` in interface `Flushable`
    Overrides:
      `flush` in class `OutputStream`
    Throws:
      `IOException`

  - ### write

    public void write(byte[] buf, int off, int len) throws IOException
    Overrides:
      `write` in class `OutputStream`
    Throws:
      `IOException`

  - ### write

    public void write(int b) throws IOException
    Specified by:
      `write` in class `OutputStream`
    Throws:
      `IOException`