Class XZCompressorOutputStream
- java.lang.Object
-
- java.io.OutputStream
-
- java.io.FilterOutputStream
-
- org.apache.commons.compress.CompressFilterOutputStream<T>
-
- org.apache.commons.compress.compressors.CompressorOutputStream<org.tukaani.xz.XZOutputStream>
-
- org.apache.commons.compress.compressors.xz.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 callsoutputStream.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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classXZCompressorOutputStream.BuilderBuilds a newXZCompressorOutputStream.
-
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)Deprecated.Usebuilder().
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static XZCompressorOutputStream.Builderbuilder()Constructs a new builder ofXZCompressorOutputStream.voidfinish()Finishes compression without closing the underlying stream.voidwrite(byte[] buf, int off, int len)-
Methods inherited from class org.apache.commons.compress.CompressFilterOutputStream
checkOpen, close, isClosed, isFinished, out, write, write, writeUsAscii, writeUsAsciiRaw, writeUtf8
-
-
-
-
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 toXZCompressorOutputStream(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.Usebuilder().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 wrappreset- the preset- Throws:
java.io.IOException- on error
-
-
Method Detail
-
builder
public static XZCompressorOutputStream.Builder builder()
Constructs a new builder ofXZCompressorOutputStream.- Returns:
- a new builder of
XZCompressorOutputStream. - Since:
- 1.28.0
-
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:
finishin classCompressFilterOutputStream<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:
writein classjava.io.FilterOutputStream- Throws:
java.io.IOException
-
-