Class InflaterOutputStream
java.lang.Object
java.io.OutputStream
java.io.FilterOutputStream
java.util.zip.InflaterOutputStream
- All Implemented Interfaces:
Closeable, Flushable, AutoCloseable
Implements an output stream filter for decompressing data stored in the
"deflate" compression format.
Decompressor Usage
AnInflaterOutputStream created without
specifying a decompressor will create a decompressor
at construction time, and close the decompressor when the output stream
is closed or when finish() is called.
If a decompressor is specified when creating a InflaterOutputStream, it is the
responsibility of the caller to close the
decompressor after closing the output stream.
- API Note:
- The
close()method should be called to release resources used by this stream, either directly, or with thetry-with-resources statement. - Since:
- 1.6
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final byte[]Output buffer for writing decompressed data.protected final InflaterDecompressor for this stream.Fields declared in class FilterOutputStream
outModifier and TypeFieldDescriptionprotected OutputStreamThe underlying output stream to be filtered. -
Constructor Summary
ConstructorsConstructorDescriptionCreates a new output stream and decompressor with a default buffer size.InflaterOutputStream(OutputStream out, Inflater infl) Creates a new output stream with the specified decompressor and a default buffer size.InflaterOutputStream(OutputStream out, Inflater infl, int bufLen) Creates a new output stream with the specified decompressor and buffer size. -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Writes any remaining decompressed data to the output stream and closes the underlying output stream.voidfinish()Writes any pending buffered decompressed data to the underlying output stream, without closing the underlying stream.voidflush()Flushes this output stream, writing any pending buffered decompressed data to the underlying output stream.voidwrite(byte[] b, int off, int len) Writes an array of bytes to the decompressed output stream.voidwrite(int b) Writes a byte to the decompressed output stream.Methods declared in class FilterOutputStream
writeModifier and TypeMethodDescriptionvoidwrite(byte[] b) Writesb.lengthbytes to this output stream.Methods declared in class OutputStream
nullOutputStreamModifier and TypeMethodDescriptionstatic OutputStreamReturns a newOutputStreamwhich discards all bytes.Methods declared in class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitModifier and TypeMethodDescriptionprotected Objectclone()Creates and returns a copy of this object.booleanIndicates whether some other object is "equal to" this one.protected voidfinalize()Deprecated, for removal: This API element is subject to removal in a future version.Finalization is deprecated and subject to removal in a future release.final Class<?> getClass()Returns the runtime class of thisObject.inthashCode()Returns a hash code value for this object.final voidnotify()Wakes up a single thread that is waiting on this object's monitor.final voidWakes up all threads that are waiting on this object's monitor.toString()Returns a string representation of the object.final voidwait()Causes the current thread to wait until it is awakened, typically by being notified or interrupted.final voidwait(long timeoutMillis) Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.final voidwait(long timeoutMillis, int nanos) Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
-
Field Details
-
inf
Decompressor for this stream. -
buf
protected final byte[] bufOutput buffer for writing decompressed data.
-
-
Constructor Details
-
InflaterOutputStream
Creates a new output stream and decompressor with a default buffer size.The decompressor will be closed when this output stream is closed.
- Parameters:
out- output stream to write the decompressed data to- Throws:
NullPointerException- ifoutis null
-
InflaterOutputStream
Creates a new output stream with the specified decompressor and a default buffer size.Closing this output stream will not close the given decompressor.
- Parameters:
out- output stream to write the decompressed data toinfl- decompressor ("inflater") for this stream- Throws:
NullPointerException- ifoutorinflis null
-
InflaterOutputStream
Creates a new output stream with the specified decompressor and buffer size.Closing this output stream will not close the given decompressor.
- Parameters:
out- output stream to write the decompressed data toinfl- decompressor ("inflater") for this streambufLen- decompression buffer size- Throws:
IllegalArgumentException- ifbufLen <= 0NullPointerException- ifoutorinflis null
-
-
Method Details
-
close
Writes any remaining decompressed data to the output stream and closes the underlying output stream.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classFilterOutputStream- Implementation Requirements:
- If not already closed, this method calls
finish()before closing the underlying output stream. - Throws:
IOException- if an I/O error occurs- See Also:
-
flush
Flushes this output stream, writing any pending buffered decompressed data to the underlying output stream.- Specified by:
flushin interfaceFlushable- Overrides:
flushin classFilterOutputStream- Throws:
IOException- if an I/O error occurs or this stream is already closed- See Also:
-
finish
Writes any pending buffered decompressed data to the underlying output stream, without closing the underlying stream.- Implementation Requirements:
- This method calls
flush()to write any pending buffered decompressed data.If this
InflaterOutputStreamwas created without specifying a decompressor, then this method closes the decompressor that was created at construction time. TheInflaterOutputStreamcannot then be used for any further writes. - Throws:
IOException- if an I/O error occurs or this stream is already closed
-
write
Writes a byte to the decompressed output stream.- Overrides:
writein classFilterOutputStream- Parameters:
b- a single byte of compressed data to decompress and write to the output stream- Throws:
IOException- if an I/O error occurs or this stream is already closedZipException- if a compression (ZIP) format error occurs
-
write
Writes an array of bytes to the decompressed output stream.- Overrides:
writein classFilterOutputStream- Parameters:
b- buffer containing compressed data to decompress and write to the output streamoff- starting offset of the compressed data withinblen- number of bytes to decompress fromb- Throws:
IndexOutOfBoundsException- ifoff < 0, or iflen < 0, or iflen > b.length - offIOException- if an I/O error occurs or this stream is already closedNullPointerException- ifbis nullZipException- if a compression (ZIP) format error occurs- See Also:
-