- java.lang.Object
-
- java.io.OutputStream
-
- java.io.FilterOutputStream
-
- java.util.zip.DeflaterOutputStream
-
- All Implemented Interfaces:
-
Closeable
,Flushable
,AutoCloseable
- 已知直接子类:
-
GZIPOutputStream
,ZipOutputStream
public class DeflaterOutputStream extends FilterOutputStream
该类实现了一种用于压缩“放气”压缩格式的数据的输出流过滤器。 它也被用作其他类型压缩滤波器的基础,如GZIPOutputStream。- 从以下版本开始:
- 1.1
- 另请参见:
-
Deflater
-
-
Field Summary
Fields Modifier and Type Field 描述 protected byte[]
buf
用于写入压缩数据的输出缓冲区protected Deflater
def
此流的压缩器。-
Fields inherited from class java.io.FilterOutputStream
out
-
-
构造方法摘要
构造方法 Constructor 描述 DeflaterOutputStream(OutputStream out)
创建具有默认压缩器和缓冲区大小的新输出流。DeflaterOutputStream(OutputStream out, boolean syncFlush)
使用默认压缩器,默认缓冲区大小和指定的刷新模式创建新的输出流。DeflaterOutputStream(OutputStream out, Deflater def)
使用指定的压缩器和默认缓冲区大小创建新的输出流。DeflaterOutputStream(OutputStream out, Deflater def, boolean syncFlush)
使用指定的压缩器,刷新模式和默认缓冲区大小创建新的输出流。DeflaterOutputStream(OutputStream out, Deflater def, int size)
创建具有指定压缩器和缓冲区大小的新输出流。DeflaterOutputStream(OutputStream out, Deflater def, int size, boolean syncFlush)
创建具有指定压缩器,缓冲区大小和冲洗模式的新输出流。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 void
close()
将剩余的压缩数据写入输出流并关闭底层流。protected void
deflate()
将下一个压缩数据块写入输出流。void
finish()
完成将压缩数据写入输出流,而不关闭底层流。void
flush()
刷新压缩的输出流。void
write(byte[] b, int off, int len)
将一个字节数组写入压缩的输出流。void
write(int b)
将一个字节写入压缩的输出流。-
Methods inherited from class java.io.FilterOutputStream
write
-
-
-
-
字段详细信息
-
def
protected Deflater def
此流的压缩器。
-
buf
protected byte[] buf
用于写入压缩数据的输出缓冲区
-
-
构造方法详细信息
-
DeflaterOutputStream
public DeflaterOutputStream(OutputStream out, Deflater def, int size, boolean syncFlush)
创建具有指定压缩器,缓冲区大小和冲洗模式的新输出流。- 参数
-
out
- 输出流 -
def
- 压缩机(“deflater”) -
size
- 输出缓冲区大小 -
syncFlush
- 如果true
这个实例的flush()
方法在刷新输出流之前用冲洗模式Deflater.SYNC_FLUSH
刷新压缩器,否则仅刷新输出流 - 异常
-
IllegalArgumentException
- 如果是size <= 0
- 从以下版本开始:
- 1.7
-
DeflaterOutputStream
public DeflaterOutputStream(OutputStream out, Deflater def, int size)
创建具有指定压缩器和缓冲区大小的新输出流。通过调用4参数构造函数DeflaterOutputStream(out,def,size,false)创建新的输出流实例。
- 参数
-
out
- 输出流 -
def
- 压缩机(“deflater”) -
size
- 输出缓冲区大小 - 异常
-
IllegalArgumentException
- 如果是size <= 0
-
DeflaterOutputStream
public DeflaterOutputStream(OutputStream out, Deflater def, boolean syncFlush)
使用指定的压缩器,刷新模式和默认缓冲区大小创建新的输出流。- 参数
-
out
- 输出流 -
def
- 压缩机(“deflater”) -
syncFlush
- 如果true
,此实例的flush()
方法在刷新输出流之前用冲洗模式Deflater.SYNC_FLUSH
刷新压缩器,否则仅刷新输出流 - 从以下版本开始:
- 1.7
-
DeflaterOutputStream
public DeflaterOutputStream(OutputStream out, Deflater def)
使用指定的压缩器和默认缓冲区大小创建新的输出流。通过调用3参数构造函数DeflaterOutputStream(out,def,false)创建新的输出流实例。
- 参数
-
out
- 输出流 -
def
- 压缩机(“deflater”)
-
DeflaterOutputStream
public DeflaterOutputStream(OutputStream out, boolean syncFlush)
使用默认压缩器,默认缓冲区大小和指定的刷新模式创建新的输出流。- 参数
-
out
- 输出流 -
syncFlush
- 如果true
此实例的flush()
方法在刷新输出流之前用冲洗模式Deflater.SYNC_FLUSH
刷新压缩器,否则仅刷新输出流 - 从以下版本开始:
- 1.7
-
DeflaterOutputStream
public DeflaterOutputStream(OutputStream out)
创建具有默认压缩器和缓冲区大小的新输出流。通过调用2参数构造函数DeflaterOutputStream(out,false),创建新的输出流实例。
- 参数
-
out
- 输出流
-
-
方法详细信息
-
write
public void write(int b) throws IOException
将一个字节写入压缩的输出流。 该方法将阻塞直到该字节被写入。- 重写:
-
write
FilterOutputStream
- 参数
-
b
- 要写入的字节 - 异常
-
IOException
- 如果发生I / O错误
-
write
public void write(byte[] b, int off, int len) throws IOException
将一个字节数组写入压缩的输出流。 该方法将阻塞,直到写入所有字节为止。- 重写:
-
write
在FilterOutputStream
- 参数
-
b
- 要写入的数据 -
off
- 数据的起始偏移量 -
len
- 数据的长度 - 异常
-
IOException
- 如果发生I / O错误 - 另请参见:
-
FilterOutputStream.write(int)
-
finish
public void finish() throws IOException
完成将压缩数据写入输出流,而不关闭底层流。 在连续使用多个过滤器到相同的输出流时使用此方法。- 异常
-
IOException
- 如果发生I / O错误
-
close
public void close() throws IOException
将剩余的压缩数据写入输出流并关闭底层流。- Specified by:
-
close
在接口AutoCloseable
- Specified by:
-
close
在接口Closeable
- 重写:
-
close
在FilterOutputStream
- 异常
-
IOException
- 如果发生I / O错误 - 另请参见:
-
FilterOutputStream.flush()
,FilterOutputStream.out
-
deflate
protected void deflate() throws IOException
将下一个压缩数据块写入输出流。- 异常
-
IOException
- 如果发生I / O错误
-
flush
public void flush() throws IOException
刷新压缩的输出流。 如果syncFlush
是true
当此压缩输出流被构造时,该方法首先用冲洗模式Deflater.SYNC_FLUSH
刷新底层compressor
,以迫使所有挂起的数据被刷新到输出流,然后刷新输出流。 否则,此方法仅刷新输出流,而不刷新compressor
。- Specified by:
-
flush
在接口Flushable
- 重写:
-
flush
在FilterOutputStream
- 异常
-
IOException
- 如果发生I / O错误 - 从以下版本开始:
- 1.7
- 另请参见:
-
FilterOutputStream.out
-
-