Module java.base
Package java.util.zip

Class DeflaterOutputStream

所有已实现的接口:
Closeable, Flushable, AutoCloseable
直接已知的子类:
GZIPOutputStream, ZipOutputStream

public class DeflaterOutputStream extends FilterOutputStream
该类实现了用于压缩数据的“deflate”压缩格式的输出流过滤器。它也被用作其他类型的压缩过滤器的基础,例如GZIPOutputStream。
自从:
1.1
参见:
  • Field Details

    • def

      protected Deflater def
      该流的压缩器。
    • buf

      protected byte[] buf
      用于写入压缩数据的输出缓冲区。
  • Constructor Details

    • 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 - 输出流
  • Method Details

    • 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错误
      参见:
    • finish

      public void finish() throws IOException
      完成向输出流写入压缩数据,而不关闭底层流。在将多个过滤器依次应用于同一输出流时使用此方法。
      抛出:
      IOException - 如果发生I/O错误
    • close

      public void close() throws IOException
      将剩余的压缩数据写入输出流并关闭底层流。
      指定者:
      close 在接口 AutoCloseable
      指定者:
      close 在接口 Closeable
      覆盖:
      close 在类 FilterOutputStream
      抛出:
      IOException - 如果发生I/O错误
      参见:
    • deflate

      protected void deflate() throws IOException
      将下一个压缩数据块写入输出流。
      抛出:
      IOException - 如果发生I/O错误
    • flush

      public void flush() throws IOException
      刷新压缩输出流。如果在构造此压缩输出流时syncFlushtrue,则此方法首先使用刷新模式Deflater.SYNC_FLUSH刷新底层compressor以强制将所有挂起的数据刷新到输出流,然后刷新输出流。否则,此方法仅刷新输出流而不刷新compressor
      指定者:
      flush 在接口 Flushable
      覆盖:
      flush 在类 FilterOutputStream
      抛出:
      IOException - 如果发生I/O错误
      自从:
      1.7
      参见: