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

# Class XZCompressorOutputStream

java.lang.Object
java.io.OutputStream
java.io.FilterOutputStream
org.apache.commons.compress.compressors.CompressorOutputStream<org.tukaani.xz.XZOutputStream>
org.apache.commons.compress.compressors.xz.XZCompressorOutputStream

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

public class XZCompressorOutputStream extends CompressorOutputStream<org.tukaani.xz.XZOutputStream>
XZ compressor. Calling flush()

Calling `FilterOutputStream.flush()` 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.

Since:
  1.4

- ## Field Summary

  ### Fields inherited from class java.io.FilterOutputStream

  `out`

- ## 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`
  `finish()`
  Finishes compression without closing the underlying stream.
  `void`
  `write(byte[] buf, int off, int len)`

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

  `out`

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

  `close, flush, write, 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

  - ### 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

  - ### write

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