net.jpountz.lz4
Class LZ4FrameOutputStream
- java.lang.Object
-
- java.io.OutputStream
-
- java.io.FilterOutputStream
-
- net.jpountz.lz4.LZ4FrameOutputStream
-
- All Implemented Interfaces:
- java.io.Closeable, java.io.Flushable, java.lang.AutoCloseable
public class LZ4FrameOutputStream extends java.io.FilterOutputStream
Implementation of the v1.5.1 LZ4 Frame format. This class is NOT thread safe.Not Supported:
- Dependent blocks
- Legacy streams
- Multiple frames (one LZ4FrameOutputStream is one frame)
Originally based on kafka's KafkaLZ4BlockOutputStream.
- See Also:
- LZ4 Framing Format Spec 1.5.1
-
-
Nested Class Summary
Nested Classes Modifier and Type Class and Description static class
LZ4FrameOutputStream.BD
static class
LZ4FrameOutputStream.BLOCKSIZE
static class
LZ4FrameOutputStream.FLG
-
Constructor Summary
Constructors Constructor and Description LZ4FrameOutputStream(java.io.OutputStream out)
Creates a newOutputStream
that will compress data using the LZ4 algorithm with 4-MB blocks.LZ4FrameOutputStream(java.io.OutputStream out, LZ4FrameOutputStream.BLOCKSIZE blockSize)
Creates a newOutputStream
that will compress data using the LZ4 algorithm.LZ4FrameOutputStream(java.io.OutputStream out, LZ4FrameOutputStream.BLOCKSIZE blockSize, long knownSize, LZ4Compressor compressor, XXHash32 checksum, LZ4FrameOutputStream.FLG.Bits... bits)
Creates a newOutputStream
that will compress data using the specified instances ofLZ4Compressor
andXXHash32
.LZ4FrameOutputStream(java.io.OutputStream out, LZ4FrameOutputStream.BLOCKSIZE blockSize, long knownSize, LZ4FrameOutputStream.FLG.Bits... bits)
Creates a newOutputStream
that will compress data using using fastest instances ofLZ4Compressor
andXXHash32
.LZ4FrameOutputStream(java.io.OutputStream out, LZ4FrameOutputStream.BLOCKSIZE blockSize, LZ4FrameOutputStream.FLG.Bits... bits)
Creates a newOutputStream
that will compress data of unknown size using the LZ4 algorithm.
-
-
-
Constructor Detail
-
LZ4FrameOutputStream
public LZ4FrameOutputStream(java.io.OutputStream out, LZ4FrameOutputStream.BLOCKSIZE blockSize, LZ4FrameOutputStream.FLG.Bits... bits) throws java.io.IOException
Creates a newOutputStream
that will compress data of unknown size using the LZ4 algorithm.- Parameters:
-
out
- the output stream to compress -
blockSize
- the BLOCKSIZE to use -
bits
- a set of features to use - Throws:
-
java.io.IOException
- if an I/O error occurs - See Also:
-
LZ4FrameOutputStream(OutputStream, BLOCKSIZE, long, FLG.Bits...)
-
LZ4FrameOutputStream
public LZ4FrameOutputStream(java.io.OutputStream out, LZ4FrameOutputStream.BLOCKSIZE blockSize, long knownSize, LZ4FrameOutputStream.FLG.Bits... bits) throws java.io.IOException
Creates a newOutputStream
that will compress data using using fastest instances ofLZ4Compressor
andXXHash32
.- Parameters:
-
out
- the output stream to compress -
blockSize
- the BLOCKSIZE to use -
knownSize
- the size of the uncompressed data. A value less than zero means unknown. -
bits
- a set of features to use - Throws:
-
java.io.IOException
- if an I/O error occurs
-
LZ4FrameOutputStream
public LZ4FrameOutputStream(java.io.OutputStream out, LZ4FrameOutputStream.BLOCKSIZE blockSize, long knownSize, LZ4Compressor compressor, XXHash32 checksum, LZ4FrameOutputStream.FLG.Bits... bits) throws java.io.IOException
Creates a newOutputStream
that will compress data using the specified instances ofLZ4Compressor
andXXHash32
.- Parameters:
-
out
- the output stream to compress -
blockSize
- the BLOCKSIZE to use -
knownSize
- the size of the uncompressed data. A value less than zero means unknown. -
compressor
- theLZ4Compressor
instance to use to compress data -
checksum
- theXXHash32
instance to use to check data for integrity -
bits
- a set of features to use - Throws:
-
java.io.IOException
- if an I/O error occurs
-
LZ4FrameOutputStream
public LZ4FrameOutputStream(java.io.OutputStream out, LZ4FrameOutputStream.BLOCKSIZE blockSize) throws java.io.IOException
Creates a newOutputStream
that will compress data using the LZ4 algorithm. The block independence flag is set, and none of the other flags are set.- Parameters:
-
out
- The stream to compress -
blockSize
- the BLOCKSIZE to use - Throws:
-
java.io.IOException
- if an I/O error occurs - See Also:
-
LZ4FrameOutputStream(OutputStream, BLOCKSIZE, FLG.Bits...)
-
LZ4FrameOutputStream
public LZ4FrameOutputStream(java.io.OutputStream out) throws java.io.IOException
Creates a newOutputStream
that will compress data using the LZ4 algorithm with 4-MB blocks.- Parameters:
-
out
- the output stream to compress - Throws:
-
java.io.IOException
- if an I/O error occurs - See Also:
-
LZ4FrameOutputStream(OutputStream, BLOCKSIZE)
-
-
Method Detail
-
write
public void write(int b) throws java.io.IOException
- Overrides:
-
write
in classjava.io.FilterOutputStream
- Throws:
-
java.io.IOException
-
write
public void write(byte[] b, int off, int len) throws java.io.IOException
- Overrides:
-
write
in classjava.io.FilterOutputStream
- Throws:
-
java.io.IOException
-
flush
public void flush() throws java.io.IOException
- Specified by:
-
flush
in interfacejava.io.Flushable
- Overrides:
-
flush
in classjava.io.FilterOutputStream
- Throws:
-
java.io.IOException
-
close
public void close() throws java.io.IOException
- Specified by:
-
close
in interfacejava.io.Closeable
- Specified by:
-
close
in interfacejava.lang.AutoCloseable
- Overrides:
-
close
in classjava.io.FilterOutputStream
- Throws:
-
java.io.IOException
-
-