Class XZCompressorOutputStream

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

    public class XZCompressorOutputStream
    extends CompressorOutputStream
    XZ compressor.
    Since:
    1.4
    • Constructor Summary

      Constructors 
      Constructor Description
      XZCompressorOutputStream​(java.io.OutputStream outputStream)
      Creates a new XZ compressor using the default LZMA2 options.
      XZCompressorOutputStream​(java.io.OutputStream outputStream, int preset)
      Creates a new XZ compressor using the specified LZMA2 preset level.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      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

        nullOutputStream, write
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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

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

      • write

        public void write​(int b)
                   throws java.io.IOException
        Specified by:
        write in class java.io.OutputStream
        Throws:
        java.io.IOException
      • write

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

        public void flush()
                   throws java.io.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 java.io.Flushable
        Overrides:
        flush in class java.io.OutputStream
        Throws:
        java.io.IOException
      • 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.
        Throws:
        java.io.IOException - on error
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Overrides:
        close in class java.io.OutputStream
        Throws:
        java.io.IOException