Class XZCompressorOutputStream

  • All Implemented Interfaces:
    java.io.Closeable, java.io.Flushable, java.lang.AutoCloseable

    public class XZCompressorOutputStream
    extends CompressorOutputStream<org.tukaani.xz.XZOutputStream>
    Compresses an output stream using the XZ and LZMA2 compression options.

    For example:

    
     XZCompressorOutputStream s = XZCompressorOutputStream.builder()
       .setPath(path)
       .setLzma2Options(new LZMA2Options(...))
       .get();
     
     

    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
    • Constructor Detail

      • XZCompressorOutputStream

        public XZCompressorOutputStream​(java.io.OutputStream outputStream)
                                 throws java.io.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:
        java.io.IOException - on error
      • XZCompressorOutputStream

        @Deprecated
        public XZCompressorOutputStream​(java.io.OutputStream outputStream,
                                        int preset)
                                 throws java.io.IOException
        Deprecated.
        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:
        java.io.IOException - on error
    • Method Detail

      • finish

        public void finish()
                    throws java.io.IOException
        Finishes compression without closing the underlying stream. No more data can be written to this stream after finishing.
        Overrides:
        finish in class CompressFilterOutputStream<org.tukaani.xz.XZOutputStream>
        Throws:
        java.io.IOException - on error
      • write

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