所有类


java.util.zip
类 Deflater

java.lang.Object
  继承者 java.util.zip.Deflater

public class Deflater
   
   
   
   
   
extends Object

此类使用流行的 ZLIB 压缩程序库为通用压缩提供支持。ZLIB 压缩程序库最初是作为 PNG 图形标准的一部分开发的,不受专利的保护。有关该规范的完整描述,请参见 java.util.zip 包描述

以下代码片段演示使用 DeflaterInflater 压缩和解压缩字符串的详细过程。

 // Encode a String into bytes
 String inputString = "blahblahblah??";
 byte[] input = inputString.getBytes("UTF-8");

 // Compress the bytes
 byte[] output = new byte[100];
 Deflater compresser = new Deflater();
 compresser.setInput(input);
 compresser.finish();
 int compressedDataLength = compresser.deflate(output);

 // Decompress the bytes
 Inflater decompresser = new Inflater();
 decompresser.setInput(output, 0, compressedDataLength);
 byte[] result = new byte[100];
 int resultLength = decompresser.inflate(result);
 decompresser.end();

 // Decode the bytes into a String
 String outputString = new String(result, 0, resultLength, "UTF-8");
 

另请参见:
Inflater

字段摘要
static intBEST_COMPRESSION
          最佳压缩的压缩级别。
static intBEST_SPEED
          最快压缩的压缩级别。
static intDEFAULT_COMPRESSION
          默认压缩级别。
static intDEFAULT_STRATEGY
          默认压缩策略。
static intDEFLATED
          deflate 算法(当前支持的惟一算法)的压缩方法。
static intFILTERED
          最适用于主要由小值组成并具有某种程度随意分布的数据的压缩策略。
static intHUFFMAN_ONLY
          仅适用于 Huffman 编码的压缩策略。
static intNO_COMPRESSION
          无压缩的压缩级别。
 
构造方法摘要
Deflater()
          使用默认压缩级别创建新的压缩器。
Deflater(int level)
          使用指定压缩级别创建新的压缩器。
Deflater(int level, boolean nowrap)
          使用指定压缩级别创建新的压缩器。
 
方法摘要
 intdeflate(byte[] b)
          使用压缩数据填充指定缓冲区。
 intdeflate(byte[] b, int off, int len)
          使用压缩数据填充指定缓冲区。
 voidend()
          关闭解压缩器并放弃所有未处理的输入。
protected  voidfinalize()
          回收垃圾时关闭压缩器。
 voidfinish()
          调用时,指示压缩应当以输入缓冲区的当前内容结尾。
 booleanfinished()
          如果已到达压缩数据输出流的结尾,则返回 true。
 intgetAdler()
          返回未压缩数据的 ADLER-32 值。
 longgetBytesRead()
          返回到目前为止输入未压缩字节的总数。
 longgetBytesWritten()
          返回到目前为止输出压缩字节的总数。
 intgetTotalIn()
          返回到目前为止输入未压缩字节的总数。
 intgetTotalOut()
          返回到目前为止输出压缩字节的总数。
 booleanneedsInput()
          如果输入数据缓冲区为空,并且应调用 setInput() 以提供更多输入,则返回 true。
 voidreset()
          重置 deflater 以处理新的输入数据集合。
 voidsetDictionary(byte[] b)
          为压缩预置字典。
 voidsetDictionary(byte[] b, int off, int len)
          为压缩设置预置字典。
 voidsetInput(byte[] b)
          为压缩设置输入数据。
 voidsetInput(byte[] b, int off, int len)
          为压缩设置输入数据。
 voidsetLevel(int level)
          将当前压缩级别设置为指定值。
 voidsetStrategy(int strategy)
          将压缩策略设置为指定值。
 
从类 java.lang.Object 继承的方法
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

DEFLATED

public static final int DEFLATED
deflate 算法(当前支持的惟一算法)的压缩方法。

另请参见:
常量字段值

NO_COMPRESSION

public static final int NO_COMPRESSION
无压缩的压缩级别。

另请参见:
常量字段值

BEST_SPEED

public static final int BEST_SPEED
最快压缩的压缩级别。

另请参见:
常量字段值

BEST_COMPRESSION

public static final int BEST_COMPRESSION
最佳压缩的压缩级别。

另请参见:
常量字段值

DEFAULT_COMPRESSION

public static final int DEFAULT_COMPRESSION
默认压缩级别。

另请参见:
常量字段值

FILTERED

public static final int FILTERED
最适用于主要由小值组成并具有某种程度随意分布的数据的压缩策略。强制使用较多的 Huffman 编码和较少的字符串匹配。

另请参见:
常量字段值

HUFFMAN_ONLY

public static final int HUFFMAN_ONLY
仅适用于 Huffman 编码的压缩策略。

另请参见:
常量字段值