| Constructor: |
public DeflaterOutputStream(OutputStream out) {
this(out, false);
usesDefaultDeflater = true;
}
Creates a new output stream with a default compressor and buffer size.
The new output stream instance is created as if by invoking
the 2-argument constructor DeflaterOutputStream(out, false). Parameters:
out - the output stream
|
public DeflaterOutputStream(OutputStream out,
Deflater def) {
this(out, def, 512, false);
}
Creates a new output stream with the specified compressor and
a default buffer size.
The new output stream instance is created as if by invoking
the 3-argument constructor DeflaterOutputStream(out, def, false). Parameters:
out - the output stream
def - the compressor ("deflater")
|
public DeflaterOutputStream(OutputStream out,
boolean syncFlush) {
this(out, new Deflater(), 512, syncFlush);
usesDefaultDeflater = true;
}
Creates a new output stream with a default compressor, a default
buffer size and the specified flush mode. Parameters:
out - the output stream
syncFlush -
if {@code true} the #flush() method of this
instance flushes the compressor with flush mode
Deflater#SYNC_FLUSH before flushing the output
stream, otherwise only flushes the output stream
- since:
1.7 -
|
public DeflaterOutputStream(OutputStream out,
Deflater def,
int size) {
this(out, def, size, false);
}
Creates a new output stream with the specified compressor and
buffer size.
The new output stream instance is created as if by invoking
the 4-argument constructor DeflaterOutputStream(out, def, size, false). Parameters:
out - the output stream
def - the compressor ("deflater")
size - the output buffer size
Throws:
IllegalArgumentException - if size is <= 0
- exception:
IllegalArgumentException - if size is <= 0
|
public DeflaterOutputStream(OutputStream out,
Deflater def,
boolean syncFlush) {
this(out, def, 512, syncFlush);
}
Creates a new output stream with the specified compressor, flush
mode and a default buffer size. Parameters:
out - the output stream
def - the compressor ("deflater")
syncFlush -
if {@code true} the #flush() method of this
instance flushes the compressor with flush mode
Deflater#SYNC_FLUSH before flushing the output
stream, otherwise only flushes the output stream
- since:
1.7 -
|
public DeflaterOutputStream(OutputStream out,
Deflater def,
int size,
boolean syncFlush) {
super(out);
if (out == null || def == null) {
throw new NullPointerException();
} else if (size < = 0) {
throw new IllegalArgumentException("buffer size < = 0");
}
this.def = def;
this.buf = new byte[size];
this.syncFlush = syncFlush;
}
Creates a new output stream with the specified compressor,
buffer size and flush mode. Parameters:
out - the output stream
def - the compressor ("deflater")
size - the output buffer size
syncFlush -
if {@code true} the #flush() method of this
instance flushes the compressor with flush mode
Deflater#SYNC_FLUSH before flushing the output
stream, otherwise only flushes the output stream
Throws:
IllegalArgumentException - if size is <= 0
- since:
1.7 -
|
| Method from java.util.zip.DeflaterOutputStream Detail: |
public void close() throws IOException {
if (!closed) {
finish();
if (usesDefaultDeflater)
def.end();
out.close();
closed = true;
}
}
Writes remaining compressed data to the output stream and closes the
underlying stream. |
protected void deflate() throws IOException {
int len = def.deflate(buf, 0, buf.length);
if (len > 0) {
out.write(buf, 0, len);
}
}
Writes next block of compressed data to the output stream. |
public void finish() throws IOException {
if (!def.finished()) {
def.finish();
while (!def.finished()) {
deflate();
}
}
}
Finishes writing compressed data to the output stream without closing
the underlying stream. Use this method when applying multiple filters
in succession to the same output stream. |
public void flush() throws IOException {
if (syncFlush && !def.finished()) {
int len = 0;
while ((len = def.deflate(buf, 0, buf.length, Deflater.SYNC_FLUSH)) > 0)
{
out.write(buf, 0, len);
if (len < buf.length)
break;
}
}
out.flush();
}
Flushes the compressed output stream.
If Deflater, int, boolean)
syncFlush is {@code true} when this compressed output stream is
constructed, this method first flushes the underlying {@code compressor}
with the flush mode Deflater#SYNC_FLUSH to force
all pending data to be flushed out to the output stream and then
flushes the output stream. Otherwise this method only flushes the
output stream without flushing the {@code compressor}. |
public void write(int b) throws IOException {
byte[] buf = new byte[1];
buf[0] = (byte)(b & 0xff);
write(buf, 0, 1);
}
Writes a byte to the compressed output stream. This method will
block until the byte can be written. |
public void write(byte[] b,
int off,
int len) throws IOException {
if (def.finished()) {
throw new IOException("write beyond end of stream");
}
if ((off | len | (off + len) | (b.length - (off + len))) < 0) {
throw new IndexOutOfBoundsException();
} else if (len == 0) {
return;
}
if (!def.finished()) {
def.setInput(b, off, len);
while (!def.needsInput()) {
deflate();
}
}
}
Writes an array of bytes to the compressed output stream. This
method will block until all the bytes are written. |