Node.js 为什么使用Zlib
Zlib是Node.js中用于压缩或解压文件的模块。压缩意味着将文件进行压缩,解压意味着解压缩文件。它是一个预构建的Node.js模块,所以不需要安装它作为依赖项。
语法:
const zlib = require('zlib');
文件的压缩(Zipping)
方法: 我们将使用 createGzip() 方法,该方法属于 Zlib 模块,以从现有文件创建一个zip文件或压缩文件。然后,我们将在创建输出文件的同时通过管道将该方法与我们想要压缩的文件连接起来,这是 createGzip() 方法的结果。
项目设置:
步骤1: 创建并打开一个项目文件夹,放在代码编辑器中。
步骤2: 在终端中找到该项目文件夹。
步骤3: 手动创建文件 app.js 和 input.txt ,或者使用命令输入来创建。
touch app.js input.txt
在 input.txt 文件中,请确保您已经写入了一些文本,这样当我们压缩和解压缩它时,我们将验证输出结果。
步骤4: 打开代码编辑器中的 app.js 文件。
代码写入:
步骤5: 需要引入 zlib 模块
const zlib = require('zlib');
步骤6: 需要 fs 模块
const fs = require('fs');
这个模块可以帮助我们创建可读流和可写流。
步骤7: 创建一个可读流
const inputFile = fs.createReadStream('input.txt');
这样我们的系统就能读取输入文件了。
步骤8: 创建一个可写流。
const outputFile = fs.createWriteStream('input.txt.gz');
这样我们的系统就可以创建一个输出文件。
步骤9: 使用 createGzip() 方法与我们想要压缩的文件进行管道连接,同时创建一个输出文件作为 createGzip() 方法的结果。
inputFile.pipe(zlib.createGzip()).pipe(outputFile);
示例: 我们将使用 Zlip 模块压缩一个文件。
const zlib = require('zlib');
const fs = require('fs');
const inputFile = fs.createReadStream('input.txt');
const outputFile = fs.createWriteStream('input.txt.gz');
inputFile.pipe(zlib.createGzip()).pipe(outputFile);
运行应用程序的步骤: 在终端中输入命令以运行脚本。
node app.js
输出:
文件解压(Unzipping)
方法: 现在,让我们使用Zlib模块的createUnzip()方法来解压在示例1 中创建的文件。
项目设置:
步骤1: 在代码编辑器中创建并打开一个项目文件夹。
步骤2: 在终端中定位到项目文件夹。
步骤3: 手动创建或使用命令创建 app.js 文件。
touch app.js
步骤4: 确保您要解压缩的文件位于您当前工作目录中,并且您想要解压缩该文件。在我们的示例中,我们考虑在示例1中压缩的文件,以便我们可以验证输出结果。
步骤5: 在代码编辑器中打开 app.js 文件。
代码编写:
步骤6 :引入zlib模块
const zlib = require('zlib');
步骤7: 需要 fs 模块
const fs = require('fs');
这个模块帮助我们创建可读流和可写流。
步骤8: 创建一个可读流
const inputFile = fs.createReadStream('input.txt.gz');
这样我们的系统可以读取输入文件。
步骤9: 创建一个可写流。
const outputFile = fs.createWriteStream('input2.txt');
这样我们的系统才能创建一个输出文件。
步骤10: 使用createUnzip()方法与我们要解压缩的文件进行管道连接,同时创建一个由createUnzip()方法产生的输出文件。
inputFile.pipe(zlib.createUnzip()).pipe(outputFile);
示例: 我们将使用Zlip模块解压缩文件。
const zlib = require('zlib');
const fs = require('fs');
const inputFile = fs.createReadStream('input.txt.gz');
const outputFile = fs.createWriteStream('input2.txt');
inputFile.pipe(zlib.createUnzip()).pipe(outputFile);
运行应用程序的步骤: 在终端中键入运行脚本的命令。
node app.js
输出: