Node.js zlib.deflateRaw() 方法

2025年2月15日 | 阅读 4 分钟

“deflateRaw” 方法是 Node.js 中 "zlib" 模块的一部分。Zlib 模块提供了压缩功能。此方法使用一种称为 "deflate" 的特殊算法来压缩数据块,没有任何头部或校验和。此方法的主要目的是压缩给定的数据缓冲区。它主要与流结合使用。

语法

它具有以下语法:

参数

此方法接受三个参数

  • Buffer: 它表示用户想要压缩的数据流。缓冲区的一些不同类型是 "Buffer"、"TypedArray"、"DataView"、"ArrayBuffer" 和 String。
  • Options 表示一个对象,允许对压缩进行一些自定义。一些选项是 "flush",它控制在压缩过程中刷新数据;"level" 将压缩级别从慢速设置为高;"windowBits" 表示压缩历史窗口的大小;"memLevel" 表示为内部压缩状态分配的内存。
  • callback 是一个函数,它在压缩完成后异步调用。此回调函数接受两个参数:一个错误对象和一个压缩后的数据。

如果未将回调函数传递给此方法,则它将返回压缩后的数据块流。

示例 1

让我们看一个简单的程序,通过回调函数来说明 zlib.deflateRaw() 方法。

输出

Node.js zlib.deflateRaw() Method

说明

此程序将使用 "zlib" 模块压缩给定的字符串。它使用 "deflateRaw()" 方法来压缩给定的数据。此方法使用 deflate 算法,不添加任何头部或校验和。之后,此函数会将压缩后的数据记录到控制台。

示例 2

让我们看另一个简单的程序,通过流来说明 zlib.deflateRaw() 方法。

输出

Node.js zlib.deflateRaw() Method

说明

此程序执行的工作与前一个程序相同,但这里不是使用回调函数,而是将压缩后的数据存储到流中。最初,它从文件中读取数据并将其存储到输入中。之后,使用 createDeflateRaw 函数压缩流。压缩后的数据存储到另一个文件中。压缩后,控制台将记录一条表示压缩成功的消息。

示例 3

让我们看一个 Node.js 程序来压缩一个文件并解压缩它。

输出

Node.js zlib.deflateRaw() Method

说明

此程序包含两个函数:一个用于压缩文件,另一个用于使用 "zlib" 模块解压缩文件。它还使用一开始导入的 "fs" 模块来处理文件路径。

"compressFile" 函数接受两个参数。第一个是文件路径,表示要压缩的文件的路径。另一个参数是 "compressedFilePath",表示存储压缩数据的文件的路径。此函数使用 "readFile" 方法读取文件的内容,然后使用 "deflateRaw" 方法压缩数据缓冲区。此函数还有一个回调函数,接受两个参数:error 和 compressed data。如果在压缩过程中发生任何错误,将显示错误消息;否则,它将使用 "writeFile" 方法将压缩后的数据写入另一个文件。如果压缩成功,则会在控制台记录一条成功消息。

"decompressFile" 方法接受两个参数。此函数还接受压缩文件路径和解压缩文件路径。它还使用 "readFile" 方法从文件中读取数据,并使用 "zlib" 方法的 "inflateRaw" 方法来解压缩压缩后的数据,然后使用 "writeFile" 方法将数据存储到另一个文件中。此函数会记录成功消息。如果在解压缩过程中发生任何错误,它会记录错误消息。