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()Answers a new instance of the same class as the receiver, whose slots have been filled in with the values in the slots of the receiver.booleanCompares the argument to the receiver, and answers true if they represent the same object using a class specific comparison.protected voidfinalize()Deprecated, for removal: This API element is subject to removal in a future version.May cause performance issues, deadlocks and hangs.getClass()Answers the unique instance of java.lang.Class which represents the class of the receiver.inthashCode()Answers an integer hash code for the receiver.final voidnotify()Causes one thread which iswaiting on the receiver to be made ready to run.final voidCauses all threads which arewaiting on the receiver to be made ready to run.toString()Answers a string containing a concise, human-readable description of the receiver.final voidwait()Causes the thread which sent this message to be made not ready to run pending some change in the receiver (as indicated bynotifyornotifyAll).final voidwait(long time) Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated bynotifyornotifyAll) or the expiration of the timeout.final voidwait(long time, int frac) Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated bynotifyornotifyAll) or the expiration of the timeout.
-
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:
-