Class GzipCompressorOutputStream
- java.lang.Object
-
- java.io.OutputStream
-
- org.apache.commons.compress.compressors.CompressorOutputStream
-
- org.apache.commons.compress.compressors.gzip.GzipCompressorOutputStream
-
- All Implemented Interfaces:
java.io.Closeable
,java.io.Flushable
,java.lang.AutoCloseable
public class GzipCompressorOutputStream extends CompressorOutputStream
Compressed output stream using the gzip format. This implementation improves over the standardGZIPOutputStream
class by allowing the configuration of the compression level and the header metadata (file name, comment, modification time, operating system and extra flags).- See Also:
- GZIP File Format Specification
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
closed
Indicates if the stream has been closedprivate java.util.zip.CRC32
crc
The checksum of the uncompressed dataprivate byte[]
deflateBuffer
The buffer receiving the compressed data from the deflaterprivate java.util.zip.Deflater
deflater
Deflater used to compress the dataprivate static int
FCOMMENT
Header flag indicating a comment follows the headerprivate static int
FNAME
Header flag indicating a file name follows the headerprivate java.io.OutputStream
out
The underlying stream
-
Constructor Summary
Constructors Constructor Description GzipCompressorOutputStream(java.io.OutputStream out)
Creates a gzip compressed output stream with the default parameters.GzipCompressorOutputStream(java.io.OutputStream out, GzipParameters parameters)
Creates a gzip compressed output stream with the specified parameters.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
private void
deflate()
void
finish()
Finishes writing compressed data to the underlying stream without closing it.void
flush()
void
write(byte[] buffer)
void
write(byte[] buffer, int offset, int length)
void
write(int b)
private void
writeHeader(GzipParameters parameters)
private void
writeTrailer()
-
-
-
Field Detail
-
FNAME
private static final int FNAME
Header flag indicating a file name follows the header- See Also:
- Constant Field Values
-
FCOMMENT
private static final int FCOMMENT
Header flag indicating a comment follows the header- See Also:
- Constant Field Values
-
out
private final java.io.OutputStream out
The underlying stream
-
deflater
private final java.util.zip.Deflater deflater
Deflater used to compress the data
-
deflateBuffer
private final byte[] deflateBuffer
The buffer receiving the compressed data from the deflater
-
closed
private boolean closed
Indicates if the stream has been closed
-
crc
private final java.util.zip.CRC32 crc
The checksum of the uncompressed data
-
-
Constructor Detail
-
GzipCompressorOutputStream
public GzipCompressorOutputStream(java.io.OutputStream out) throws java.io.IOException
Creates a gzip compressed output stream with the default parameters.- Parameters:
out
- the stream to compress to- Throws:
java.io.IOException
- if writing fails
-
GzipCompressorOutputStream
public GzipCompressorOutputStream(java.io.OutputStream out, GzipParameters parameters) throws java.io.IOException
Creates a gzip compressed output stream with the specified parameters.- Parameters:
out
- the stream to compress toparameters
- the parameters to use- Throws:
java.io.IOException
- if writing fails- Since:
- 1.7
-
-
Method Detail
-
writeHeader
private void writeHeader(GzipParameters parameters) throws java.io.IOException
- Throws:
java.io.IOException
-
writeTrailer
private void writeTrailer() throws java.io.IOException
- Throws:
java.io.IOException
-
write
public void write(int b) throws java.io.IOException
- Specified by:
write
in classjava.io.OutputStream
- Throws:
java.io.IOException
-
write
public void write(byte[] buffer) throws java.io.IOException
- Overrides:
write
in classjava.io.OutputStream
- Throws:
java.io.IOException
- Since:
- 1.1
-
write
public void write(byte[] buffer, int offset, int length) throws java.io.IOException
- Overrides:
write
in classjava.io.OutputStream
- Throws:
java.io.IOException
- Since:
- 1.1
-
deflate
private void deflate() throws java.io.IOException
- Throws:
java.io.IOException
-
finish
public void finish() throws java.io.IOException
Finishes writing compressed data to the underlying stream without closing it.- Throws:
java.io.IOException
- on error- Since:
- 1.7
-
flush
public void flush() throws java.io.IOException
- Specified by:
flush
in interfacejava.io.Flushable
- Overrides:
flush
in classjava.io.OutputStream
- Throws:
java.io.IOException
- Since:
- 1.7
-
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.OutputStream
- Throws:
java.io.IOException
-
-