# zlib 库模块帮助文档

## zlib 成员列表 <a id="zlib" href="#zlib">&#x23;</a>

库

### zlib.ZLIB_VERSION <a id="zlib.ZLIB_VERSION" href="#zlib.ZLIB_VERSION">&#x23;</a>
zlib 版本

### zlib.compress(源数据,压缩级别) <a id="zlib.compress" href="#zlib.compress">&#x23;</a>
源数据：需要压缩的数据(字符串类型)  
压缩级别最快为1,最大压缩为9,默认值为8  
返回压缩后的数据,第二个返回值为压缩前数据长度

### zlib.compressBound(源数据大小) <a id="zlib.compressBound" href="#zlib.compressBound">&#x23;</a>
提供源数据大小，计算压缩需要的缓冲区长度

### zlib.gzCompress(源数据,压缩级别,压缩头格式) <a id="zlib.gzCompress" href="#zlib.gzCompress">&#x23;</a>
压缩gzip数据  
参数2指定压缩级别,最快速度为1,最大压缩率为9,默认为8  
压缩头参数可以传入"gzip","zlib","raw"三种格式,"raw"表示不添加压缩头,  
不指定参数时压缩头默认为"gzip"  
新版不建议再用true表示"gzip",false表示"zlib"的兼容用法  

返回压缩后的数据,第二个返回值为压缩前数据长度

### zlib.gzFile("/路径.gz","ab") <a id="zlib.gzFile" href="#zlib.gzFile">&#x23;</a>
追加到gzip压缩文件

### zlib.gzFile("/路径.gz","rb") <a id="zlib.gzFile" href="#zlib.gzFile">&#x23;</a>
打开只读gzip压缩文件

### zlib.gzFile("/路径.gz","wb") <a id="zlib.gzFile" href="#zlib.gzFile">&#x23;</a>
创建只写gzip压缩文件

### zlib.gzFile("/路径.gz","wb9") <a id="zlib.gzFile" href="#zlib.gzFile">&#x23;</a>
创建只写gzip压缩文件  
可选用一个数值指定压缩级别,最快速度为1,最大压缩率为9,默认为8

### zlib.gzFile() <a id="zlib.gzFile" href="#zlib.gzFile">&#x23;</a>
[返回对象:gzFileObject](#gzFileObject)

### zlib.gzUncompress(源数据,压缩头格式) <a id="zlib.gzUncompress" href="#zlib.gzUncompress">&#x23;</a>
解压缩数据  
压缩头参数可以传入"gzip","zlib","raw"三种格式,"raw"表示无压缩头,  
不指定参数时压缩头默认为"gzip"  
如果压缩头指定为"gzip",传入数据不含gzip头时直接返回传入数据,  
新版不建议再用true表示"gzip",false表示"zlib"的兼容用法

### zlib.streamReader() <a id="zlib.streamReader" href="#zlib.streamReader">&#x23;</a>
[返回对象:zlibStreamReaderObject](#zlibStreamReaderObject)

### zlib.streamReader(压缩头格式,缓冲区大小) <a id="zlib.streamReader" href="#zlib.streamReader">&#x23;</a>
创建解压内存流对象,所有参数可选  
压缩头参数可以传入"gzip","zlib","raw"三种格式,"raw"表示无压缩头,  
不指定参数时压缩头默认为"gzip",  
新版不建议再用true表示"gzip",false表示"zlib"的兼容用法

### zlib.streamWriter() <a id="zlib.streamWriter" href="#zlib.streamWriter">&#x23;</a>
[返回对象:zlibStreamWriterObject](#zlibStreamWriterObject)

### zlib.streamWriter(压缩级别,压缩头格式,缓冲区大小) <a id="zlib.streamWriter" href="#zlib.streamWriter">&#x23;</a>
创建压缩内存流对象,所有参数可选,  
压缩级别,最快速度为1,最大压缩率为9,默认为8  
压缩头参数可以传入"gzip","zlib","raw"三种格式,"raw"表示不添加压缩头,  
不指定参数时压缩头默认为"gzip"  
新版不建议再用true表示"gzip",false表示"zlib"的兼容用法

### zlib.uncompress(源数据) <a id="zlib.uncompress" href="#zlib.uncompress">&#x23;</a>
源数据为 gzip 或 zlib 格式压缩数据

### zlib.uncompress(源数据,解压后大小) <a id="zlib.uncompress" href="#zlib.uncompress">&#x23;</a>
源数据为zlib格式压缩数据  
指定解压后大小仅支持zlib格式

### zlib.z_stream(缓冲区大小) <a id="zlib.z_stream" href="#zlib.z_stream">&#x23;</a>
z_stream 结构体，raw.struct 对象。

## gzFileObject 成员列表 <a id="gzFileObject" href="#gzFileObject">&#x23;</a>

### gzFileObject.close() <a id="gzFileObject.close" href="#gzFileObject.close">&#x23;</a>
关闭文件

### gzFileObject.read(-1) <a id="gzFileObject.read" href="#gzFileObject.read">&#x23;</a>
读取到文件尾，成功返回所有解压数据。  
也可指定要读取的数据长度

### gzFileObject.read(0) <a id="gzFileObject.read" href="#gzFileObject.read">&#x23;</a>
检测是否到文件尾

### gzFileObject.read({int data=1234}) <a id="gzFileObject.read" href="#gzFileObject.read">&#x23;</a>
参数可以是任意结构体  
解压并填充该结构体

### gzFileObject.readBuffer(buffer,读取长度) <a id="gzFileObject.readBuffer" href="#gzFileObject.readBuffer">&#x23;</a>
参数必须是使用 buffer 对象  
长度参数可选,默认为缓冲区长度  
返回成功解压的字节长度

### gzFileObject.seek("cur",偏移值) <a id="gzFileObject.seek" href="#gzFileObject.seek">&#x23;</a>
在未压缩数据内移动指针位置,  
参数2为相对于当前位置的偏移值,  
返回指针位置

### gzFileObject.seek("set",偏移值) <a id="gzFileObject.seek" href="#gzFileObject.seek">&#x23;</a>
在未压缩数据内移动指针位置,  
参数2为相对于文件开始处的偏移值,  
返回指针位置

### gzFileObject.size() <a id="gzFileObject.size" href="#gzFileObject.size">&#x23;</a>
返回未压缩数据32位长度

### gzFileObject.write({int data=1234}) <a id="gzFileObject.write" href="#gzFileObject.write">&#x23;</a>
压缩结构体并写入到压缩文件

### gzFileObject.write(字符串) <a id="gzFileObject.write" href="#gzFileObject.write">&#x23;</a>
压缩并写入到压缩文件

### gzFileObject.writeBuffer(buffer,写入长度) <a id="gzFileObject.writeBuffer" href="#gzFileObject.writeBuffer">&#x23;</a>
压缩并写入到压缩文件  
参数一必须是使用 buffer 对象  
长度参数可选,默认为缓冲区长度.

## zlibStreamReaderObject 成员列表 <a id="zlibStreamReaderObject" href="#zlibStreamReaderObject">&#x23;</a>

### zlibStreamReaderObject.colse() <a id="zlibStreamReaderObject.colse" href="#zlibStreamReaderObject.colse">&#x23;</a>
完成压缩,返回剩余解压数据

### zlibStreamReaderObject.getStream() <a id="zlibStreamReaderObject.getStream" href="#zlibStreamReaderObject.getStream">&#x23;</a>
返回 z_stream 结构体，不可修改返回对象。

### zlibStreamReaderObject.read(字符串) <a id="zlibStreamReaderObject.read" href="#zlibStreamReaderObject.read">&#x23;</a>
解压并返回字符串。  
也有可能返回 null 值，直到传入参数为 null 以指定压缩完成  
才返回压缩后的字符串。  

失败则第 2 个返回值为错误代码。

## zlibStreamStructObject 成员列表 <a id="zlibStreamStructObject" href="#zlibStreamStructObject">&#x23;</a>

### zlibStreamStructObject.data_type <a id="zlibStreamStructObject.data_type" href="#zlibStreamStructObject.data_type">&#x23;</a>
数据类型。  
二进制文件为0，文本文件为 1。  
不可修改该值

### zlibStreamStructObject.total_in <a id="zlibStreamStructObject.total_in" href="#zlibStreamStructObject.total_in">&#x23;</a>
总输入大小，不可修改该值。

### zlibStreamStructObject.total_out <a id="zlibStreamStructObject.total_out" href="#zlibStreamStructObject.total_out">&#x23;</a>
总输出大小，不可修改该值。

## zlibStreamWriterObject 成员列表 <a id="zlibStreamWriterObject" href="#zlibStreamWriterObject">&#x23;</a>

### zlibStreamWriterObject.colse() <a id="zlibStreamWriterObject.colse" href="#zlibStreamWriterObject.colse">&#x23;</a>
完成压缩,并返回剩余压缩数据

### zlibStreamWriterObject.getStream() <a id="zlibStreamWriterObject.getStream" href="#zlibStreamWriterObject.getStream">&#x23;</a>
返回 z_stream 结构体，不可修改返回对象。  

[返回对象:zlibStreamStructObject](#zlibStreamStructObject)

### zlibStreamWriterObject.write(字符串) <a id="zlibStreamWriterObject.write" href="#zlibStreamWriterObject.write">&#x23;</a>
压缩并返回压缩后的字符串，  
有可能返回 null 值，直到传入参数为 null 以指定压缩完成  
才返回压缩后的字符串。  

失败则第 2 个返回值为错误代码。

### 自动完成常量
_Z_ASCII=1  
_Z_BEST_COMPRESSION=9  
_Z_BEST_SPEED=1  
_Z_BINARY=0  
_Z_BUF_ERROR=-5  
_Z_DATA_ERROR=-3  
_Z_DEFAULT_COMPRESSION=-1  
_Z_DEFAULT_STRATEGY=0  
_Z_DEFLATED=8  
_Z_ERRNO=-1  
_Z_FILTERED=1  
_Z_FINISH=4  
_Z_FULL_FLUSH=3  
_Z_HUFFMAN_ONLY=2  
_Z_MAX_WBITS=15  
_Z_MEM_ERROR=-4  
_Z_NEED_DICT=2  
_Z_NO_COMPRESSION=0  
_Z_NO_FLUSH=0  
_Z_NULL=0  
_Z_OK=0  
_Z_PARTIAL_FLUSH=1  
_Z_STREAM_END=1  
_Z_STREAM_ERROR=-2  
_Z_SYNC_FLUSH=2  
_Z_UNKNOWN=2  
_Z_VERSION_ERROR=-6  
