Package 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 Description static class
LZ4FrameOutputStream.BD
static class
LZ4FrameOutputStream.BLOCKSIZE
static class
LZ4FrameOutputStream.FLG
-
Constructor Summary
Constructors Constructor 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.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
void
flush()
void
write(byte[] b, int off, int len)
void
write(int b)
-
-
-
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 compressblockSize
- the BLOCKSIZE to usebits
- 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 compressblockSize
- the BLOCKSIZE to useknownSize
- 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 compressblockSize
- the BLOCKSIZE to useknownSize
- the size of the uncompressed data. A value less than zero means unknown.compressor
- theLZ4Compressor
instance to use to compress datachecksum
- theXXHash32
instance to use to check data for integritybits
- 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 compressblockSize
- 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.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Overrides:
close
in classjava.io.FilterOutputStream
- Throws:
java.io.IOException
-
-