Package net.jpountz.lz4
Class LZ4BlockOutputStream
- java.lang.Object
-
- java.io.OutputStream
-
- java.io.FilterOutputStream
-
- net.jpountz.lz4.LZ4BlockOutputStream
-
- All Implemented Interfaces:
java.io.Closeable
,java.io.Flushable
,java.lang.AutoCloseable
public class LZ4BlockOutputStream extends java.io.FilterOutputStream
Streaming LZ4 (not compatible with the LZ4 Frame format). This class compresses data into fixed-size blocks of compressed data. This class uses its own format and is not compatible with the LZ4 Frame format. For interoperability with other LZ4 tools, useLZ4FrameOutputStream
, which is compatible with the LZ4 Frame format. This class remains for backward compatibility.- See Also:
LZ4BlockInputStream
,LZ4FrameOutputStream
-
-
Constructor Summary
Constructors Constructor Description LZ4BlockOutputStream(java.io.OutputStream out)
Creates a new instance which compresses into blocks of 64 KB.LZ4BlockOutputStream(java.io.OutputStream out, int blockSize)
Creates a new instance which compresses with the standard LZ4 compression algorithm.LZ4BlockOutputStream(java.io.OutputStream out, int blockSize, LZ4Compressor compressor)
Creates a new instance which checks stream integrity usingStreamingXXHash32
and doesn't sync flush.LZ4BlockOutputStream(java.io.OutputStream out, int blockSize, LZ4Compressor compressor, java.util.zip.Checksum checksum, boolean syncFlush)
Creates a newOutputStream
with configurable block size.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
void
finish()
Same asclose()
except that it doesn't close the underlying stream.void
flush()
Flushes this compressedOutputStream
.java.lang.String
toString()
void
write(byte[] b)
void
write(byte[] b, int off, int len)
void
write(int b)
-
-
-
Constructor Detail
-
LZ4BlockOutputStream
public LZ4BlockOutputStream(java.io.OutputStream out, int blockSize, LZ4Compressor compressor, java.util.zip.Checksum checksum, boolean syncFlush)
Creates a newOutputStream
with configurable block size. Large blocks require more memory at compression and decompression time but should improve the compression ratio.- Parameters:
out
- theOutputStream
to feedblockSize
- the maximum number of bytes to try to compress at once, must be >= 64 and <= 32 Mcompressor
- theLZ4Compressor
instance to use to compress datachecksum
- theChecksum
instance to use to check data for integrity.syncFlush
- true if pending data should also be flushed onflush()
-
LZ4BlockOutputStream
public LZ4BlockOutputStream(java.io.OutputStream out, int blockSize, LZ4Compressor compressor)
Creates a new instance which checks stream integrity usingStreamingXXHash32
and doesn't sync flush.- Parameters:
out
- theOutputStream
to feedblockSize
- the maximum number of bytes to try to compress at once, must be >= 64 and <= 32 Mcompressor
- theLZ4Compressor
instance to use to compress data- See Also:
LZ4BlockOutputStream(OutputStream, int, LZ4Compressor, Checksum, boolean)
,StreamingXXHash32.asChecksum()
-
LZ4BlockOutputStream
public LZ4BlockOutputStream(java.io.OutputStream out, int blockSize)
Creates a new instance which compresses with the standard LZ4 compression algorithm.- Parameters:
out
- theOutputStream
to feedblockSize
- the maximum number of bytes to try to compress at once, must be >= 64 and <= 32 M- See Also:
LZ4BlockOutputStream(OutputStream, int, LZ4Compressor)
,LZ4Factory.fastCompressor()
-
LZ4BlockOutputStream
public LZ4BlockOutputStream(java.io.OutputStream out)
Creates a new instance which compresses into blocks of 64 KB.- Parameters:
out
- theOutputStream
to feed- See Also:
LZ4BlockOutputStream(OutputStream, int)
-
-
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
-
write
public void write(byte[] b) throws java.io.IOException
- Overrides:
write
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
-
flush
public void flush() throws java.io.IOException
Flushes this compressedOutputStream
. If the stream has been created withsyncFlush=true
, pending data will be compressed and appended to the underlyingOutputStream
before callingOutputStream.flush()
on the underlying stream. Otherwise, this method just flushes the underlying stream, so pending data might not be available for reading untilfinish()
orclose()
is called.- Specified by:
flush
in interfacejava.io.Flushable
- Overrides:
flush
in classjava.io.FilterOutputStream
- Throws:
java.io.IOException
-
finish
public void finish() throws java.io.IOException
Same asclose()
except that it doesn't close the underlying stream. This can be useful if you want to keep on using the underlying stream.- Throws:
java.io.IOException
- if an I/O error occurs.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-