deflater java_java.util.zip 类 Deflater - Java 中文参考手册
java.lang.Object
java.util.zip.Deflater
public class Deflaterextends Object
此类使用流行的 ZLIB 压缩程序库为通用压缩提供支持。ZLIB 压缩程序库最初是作为 PNG 图形标准的一部分开发的,不受专利的保护。有关该规范的完整描述,请参见 java.util.zip 包描述。
以下代码片段演示使用 Deflater 和 Inflater 压缩和解压缩字符串的详细过程。
// 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
字段摘要
staticint
BEST_COMPRESSION
最佳压缩的压缩级别。
staticint
BEST_SPEED
最快压缩的压缩级别。
staticint
DEFAULT_COMPRESSION
默认压缩级别。
staticint
DEFAULT_STRATEGY
默认压缩策略。
staticint
DEFLATED
deflate 算法(当前支持的惟一算法)的压缩方法。
staticint
FILTERED
最适用于主要由小值组成并具有某种程度随意分布的数据的压缩策略。
staticint
HUFFMAN_ONLY
仅适用于 Huffman 编码的压缩策略。
staticint
NO_COMPRESSION
无压缩的压缩级别。
构造方法摘要
Deflater()
使用默认压缩级别创建新的压缩器。
Deflater(intlevel)
使用指定压缩级别创建新的压缩器。
Deflater(intlevel,
booleannowrap)
使用指定压缩级别创建新的压缩器。
方法摘要
int
deflate(byte[]b)
使用压缩数据填充指定缓冲区。
int
deflate(byte[]b,
intoff,
intlen)
使用压缩数据填充指定缓冲区。
void
end()
关闭解压缩器并放弃所有未处理的输入。
protected void
finalize()
回收垃圾时关闭压缩器。
void
finish()
调用时,指示压缩应当以输入缓冲区的当前内容结尾。
boolean
finished()
如果已到达压缩数据输出流的结尾,则返回 true。
int
getAdler()
返回未压缩数据的 ADLER-32 值。
long
getBytesRead()
返回到目前为止输入未压缩字节的总数。
long
getBytesWritten()
返回到目前为止输出压缩字节的总数。
int
getTotalIn()
返回到目前为止输入未压缩字节的总数。
int
getTotalOut()
返回到目前为止输出压缩字节的总数。
boolean
needsInput()
如果输入数据缓冲区为空,并且应调用 setInput() 以提供更多输入,则返回 true。
void
reset()
重置 deflater 以处理新的输入数据集合。
void
setDictionary(byte[]b)
为压缩预置字典。
void
setDictionary(byte[]b,
intoff,
intlen)
为压缩设置预置字典。
void
setInput(byte[]b)
为压缩设置输入数据。
void
setInput(byte[]b,
intoff,
intlen)
为压缩设置输入数据。
void
setLevel(intlevel)
将当前压缩级别设置为指定值。
void
setStrategy(intstrategy)
将压缩策略设置为指定值。
从类 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 编码的压缩策略。
另请参见:常量字段值
DEFAULT_STRATEGY
public static final int DEFAULT_STRATEGY
默认压缩策略。
另请参见:常量字段值
构造方法详细信息
Deflater
public Deflater(intlevel,
booleannowrap)
使用指定压缩级别创建新的压缩器。如果 ‘nowrap’ 为 true,则不使用 ZLIB 头和校验和字段,以便支持在 GZIP 和 PKZIP 中使用的压缩格式。
参数:level – 压缩级别 (0-9)nowrap – 如果为 true ,则使用 GZIP 兼容的压缩
Deflater
public Deflater(intlevel)
使用指定压缩级别创建新的压缩器。压缩的数据将以 ZLIB 格式生成。
参数:level – 压缩级别 (0-9)
Deflater
public Deflater()
使用默认压缩级别创建新的压缩器。压缩的数据将以 ZLIB 格式生成。
方法详细信息
setInput
public void setInput(byte[]b,
intoff,
intlen)
为压缩设置输入数据。此方法应该在 needsInput() 返回 true 时调用,以指示需要更多的输入数据。
参数:b – 输入数据字节off – 数据的初始偏移量len – 数据的长度另请参见:needsInput()
setInput
public void setInput(byte[]b)
为压缩设置输入数据。此方法应该在 needsInput() 返回 true 时调用,以指示需要更多的输入数据。
参数:b – 输入数据字节另请参见:needsInput()
setDictionary
public void setDictionary(byte[]b,
intoff,
intlen)
为压缩设置预置字典。预置字典在历史缓冲区可预定时使用。当以后使用 Inflater.inflate() 取消压缩数据时,可以调用 Inflater.getAdler() 来获取解压缩所需字典的 Adler-32 值。
参数:b – 字典数据字节off – 数据的初始偏移量len – 数据的长度另请参见:Inflater.inflate(byte[], int, int),
Inflater.getAdler()
setDictionary
public void setDictionary(byte[]b)
为压缩预置字典。预置字典在历史缓冲区可预定时使用。当以后使用 Inflater.inflate() 取消压缩数据时,可以调用 Inflater.getAdler() 来获取解压缩所需字典的 Adler-32 值。
参数:b – 字典数据字节另请参见:Inflater.inflate(byte[], int, int),
Inflater.getAdler()
setStrategy
public void setStrategy(intstrategy)
将压缩策略设置为指定值。
参数:strategy – 新的压缩策略抛出:IllegalArgumentException – 如果压缩策略无效
setLevel
public void setLevel(intlevel)
将当前压缩级别设置为指定值。
参数:level – 新的压缩级别 (0-9)抛出:IllegalArgumentException – 如果压缩级别无效
needsInput
public boolean needsInput()
如果输入数据缓冲区为空,并且应调用 setInput() 以提供更多输入,则返回 true。
返回:如果输入数据缓冲区为空,并且应调用 setInput() 以提供更多输入,则返回 true
finish
public void finish()
调用时,指示压缩应当以输入缓冲区的当前内容结尾。
finished
public boolean finished()
如果已到达压缩数据输出流的结尾,则返回 true。
返回:如果已到达压缩数据输出流的结尾,则返回 true
deflate
public int deflate(byte[]b,
intoff,
intlen)
使用压缩数据填充指定缓冲区。返回压缩数据的实际字节数。返回值为 0 指示应调用 needsInput() 来确定是否需要更多的输入数据。
参数:b – 压缩数据的缓冲区off – 数据的初始偏移量len – 压缩数据的最大字节数返回:压缩数据的实际字节数
deflate
public int deflate(byte[]b)
使用压缩数据填充指定缓冲区。返回压缩数据的实际字节数。返回值为 0 指示应调用 needsInput() 来确定是否需要更多的输入数据。
参数:b – 压缩数据的缓冲区返回:压缩数据的实际字节数
getAdler
public int getAdler()
返回未压缩数据的 ADLER-32 值。
返回:未压缩数据的 ADLER-32 值
getTotalIn
public int getTotalIn()
返回到目前为止输入未压缩字节的总数。
由于该字节数可能大于 Integer.MAX_VALUE,因此 getBytesRead() 方法现在是获取此信息的首选方法。
返回:到目前为止输入未压缩字节的总数
getBytesRead
public long getBytesRead()
返回到目前为止输入未压缩字节的总数。
返回:到目前为止输入未压缩字节的总数(非负)
getTotalOut
public int getTotalOut()
返回到目前为止输出压缩字节的总数。
由于该字节数可能大于 Integer.MAX_VALUE,因此 getBytesWritten() 方法现在是获取此信息的首选方法。
返回:到目前为止输出压缩字节的总数
getBytesWritten
public long getBytesWritten()
返回到目前为止输出压缩字节的总数。
返回:到目前为止输出压缩字节的总数(非负)
reset
public void reset()
重置 deflater 以处理新的输入数据集合。保持当前压缩级别和策略设置。
end
public void end()
关闭解压缩器并放弃所有未处理的输入。此方法应该在不再使用该压缩器时调用,但是也可以由 finalize() 方法自动调用。调用此方法后,Deflater 对象的行为将是不确定的。
finalize
protected void finalize()
回收垃圾时关闭压缩器。
覆盖:类 Object 中的 finalize
deflater java_java.util.zip 类 Deflater - Java 中文参考手册相关推荐
- zipentry java_java.util.zip 类 ZipEntry - Java 中文参考手册
java.lang.Object java.util.zip.ZipEntry 所有已实现的接口:Cloneable 直接已知子类:JarEntry public class ZipEntryexte ...
- java.util.list e_java.util 类 StackE - Java 中文参考手册
java.lang.Object java.util.AbstractCollection java.util.AbstractList java.util.Vector java.util.Stac ...
- java awt table_java.awt.image 类 LookupTable - Java 中文参考手册
java.lang.Object java.awt.image.LookupTable 直接已知子类:ByteLookupTable, ShortLookupTable public abstract ...
- java geom_java.awt.geom 类 Area - Java 中文参考手册
java.lang.Object java.awt.geom.Area 所有已实现的接口:Shape, Cloneable public class Areaextends Objectimpleme ...
- java awt canvas_java.awt 类 Canvas - Java 中文参考手册
java.lang.Object java.awt.Component java.awt.Canvas 所有已实现的接口:ImageObserver, MenuContainer, Serializa ...
- java.util.zip 类 ZipEntry
java.util.zip 类 ZipEntry java.lang.Objectjava.util.zip.ZipEntry 所有已实现的接口: Cloneable 直接已知子类: JarEntry ...
- JDK中提供的实现——通过 java.util.Observable 类和 java.util.Observer 接口定义了观察者模式,只要实现它们的子类就可以编写观察者模式实例
JDK中提供的实现 在 Java 中,通过 java.util.Observable 类和 java.util.Observer 接口定义了观察者模式,只要实现它们的子类就可以编写观察者模式实例. 1 ...
- getValue()方法 java_java.util.zip.CRC32.getValue()方法示例
java.util.zip.CRC32.getValue()方法返回校验和值. 声明 以下是java.util.zip.CRC32.getValue方法的声明. public long getValu ...
- MySQL中文参考手册--1.MySQL的一般信息
MySQL中文参考手册--1.MySQL的一般信息 0 译者序 MySQL是一个精巧的SQL数据库管理系统,虽然它不是开放源代码的产品,但在某些情况下你可以自由使用.由于它的强大功能.灵活性.丰富的应 ...
最新文章
- 【全网之最】用JavaScript写一个最简短的语句实现从A数组中去除B数组中相同元素
- 更新代码到gitlab上
- 大数据分析需掌握哪些方面
- 科学语言与matlab计算 实验2、3
- 超级详细:GOG游戏平台白嫖Steam巫师3游戏教程
- 将Excel表格中的数字文本格式转化为数字格式
- 网络存储专有名词介绍
- codevs 1296
- 北京交通大学c语言程序设计,北京交通大学C语言综合程序设计(黄宇班).doc
- excel操作技巧:“自定义名称”应用基础篇
- 基于 Squid 实现爬虫代理服务
- GitLab安装到实战
- 自制廉价难度低性能较好的锂电充电器(转)
- [vue] 11. pixiJS整合vue初体验
- 国际篮球规则2017 FIBA 简述
- 虚电路服务和无连接的数据包服务
- 找回躲猫猫的Win7资源管理器收藏夹
- 移动支付线上线下支付场景
- excel中if函数怎么用android,Excel函数中的IF条件函数怎么用?四个IF函数公式带你轻松上手...
- infineon 高边芯片 BTS54040-LBF
热门文章
- 计算机网络学习笔记-1.1.5-分层结构、协议、接口、服务
- spring学习笔记01-BeanFactory和ApplicationContext的区别
- java8 迭代set集合_JavaSE(八)集合之Set
- php java 通信_PHP与Java进行通信的实现方法
- 什么是java dom_java web--DOM
- 计算机英语一级考试试题,全国计算机一级考试试题及答案
- OpenCV中HoughLinesP( )检测直线函数返回的坐标的原点
- 工业机器人国内外的发展现状
- 杨辉三角变形(高效解析)
- 蒙特卡洛方法_【每日一题56】蒙特卡洛方法 用试验所得的频率估计事件发生概率...