- java.lang.Object
-
- java.io.OutputStream
-
- java.io.FilterOutputStream
-
- java.util.zip.DeflaterOutputStream
-
- 实现的所有接口
-
Closeable
,Flushable
,AutoCloseable
- 已知直接子类:
-
GZIPOutputStream
,ZipOutputStream
public class DeflaterOutputStream extends FilterOutputStream
此类实现了一个输出流过滤器,用于以“deflate”压缩格式压缩数据。 它还可用作其他类型压缩过滤器的基础,例如GZIPOutputStream。- 从以下版本开始:
- 1.1
- 另请参见:
-
Deflater
-
-
字段汇总
字段 变量和类型 字段 描述 protected byte[]
buf
用于写入压缩数据的输出缓冲区protected Deflater
def
此流的压缩器。-
声明的属性在类 java.io.FilterOutputStream
out
-
-
构造方法摘要
构造方法 构造器 描述 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)
使用指定的压缩器,缓冲区大小和刷新模式创建新的输出流。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 void
close()
将剩余的压缩数据写入输出流并关闭基础流。protected void
deflate()
将下一个压缩数据块写入输出流。void
finish()
完成将压缩数据写入输出流而不关闭底层流。void
flush()
刷新压缩的输出流。void
write(byte[] b, int off, int len)
将一个字节数组写入压缩输出流。void
write(int b)
将一个字节写入压缩输出流。-
声明方法的类 java.io.FilterOutputStream
write
-
声明方法的类 java.io.OutputStream
nullOutputStream
-
-
-
-
字段详细信息
-
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
-
-