# XZCompressorOutputStream (Apache Commons Compress 1.13 API)

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

    Methods
    Modifier and Type | Method and 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 Detail

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

    - #### write

          public void write(int b)
                     throws IOException

      Specified by:
        `write` in class `OutputStream`
      Throws:
        `IOException`

    - #### write

          public void write(byte[] buf,
                   int off,
                   int len)
                     throws IOException

      Overrides:
        `write` in class `OutputStream`
      Throws:
        `IOException`

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

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

    - #### close

          public void close()
                     throws IOException

      Specified by:
        `close` in interface `Closeable`
      Specified by:
        `close` in interface `AutoCloseable`
      Overrides:
        `close` in class `OutputStream`
      Throws:
        `IOException`

Copyright © 2016 The Apache Software Foundation. All rights reserved.