本文概述
- Node.js从流读取
- Node.js写入流
- Node.js管道流
- Node.js链流
- 可读:此流用于读取操作。
- 可写:此流用于写操作。
- 双工:此流可用于读取和写入操作。
- 转换:这是双工流的类型, 其中根据输入计算输出。
- 数据:当有可读取的数据时, 将触发此事件。
- 结束:没有更多数据可读取时, 将触发此事件。
- 错误:接收或写入数据时发生任何错误。
- 完成:将所有数据刷新到基础系统后, 将引发此事件。
srcmini is a one of the best online tutorial website to learn different technologies in a very easy and efficient manner.
使用以下代码创建一个名为main.js的JavaScript文件:
文件:main.js
var fs = require("fs");
var datahttp://www.srcmini.com/= '';
// Create a readable stream
var readerStream = fs.createReadStream('input.txt');
// Set the encoding to be utf8.
readerStream.setEncoding('UTF8');
// Handle stream events -->
data, end, and error
readerStream.on('data', function(chunk) {
data += chunk;
});
readerStream.on('end', function(){
console.log(data);
});
readerStream.on('error', function(err){
console.log(err.stack);
});
console.log("Program Ended");
现在, 打开Node.js命令提示符并运行main.js
node main.js
输出
文章图片
Node.js写入流 使用以下代码创建一个名为main.js的JavaScript文件:
文件:main.js
var fs = require("fs");
var datahttp://www.srcmini.com/= 'A Solution of all Technology';
// Create a writable stream
var writerStream = fs.createWriteStream('output.txt');
// Write the data to stream with encoding to be utf8
writerStream.write(data, 'UTF8');
// Mark the end of file
writerStream.end();
// Handle stream events -->
finish, and error
writerStream.on('finish', function() {
console.log("Write completed.");
});
writerStream.on('error', function(err){
console.log(err.stack);
});
console.log("Program Ended");
现在打开Node.js命令提示符并运行main.js
node main.js
你将看到以下结果:
文章图片
现在, 你可以看到在保存” input.txt” 和” main.js” 文件的位置创建了一个名为” output.txt” 的文本文件。就我而言, 它在桌面上。
打开” output.txt” , 你将看到以下内容。
文章图片
Node.js管道流 管道是一种机制, 其中一个流的输出用作另一流的输入。管道操作没有限制。
让我们以一个管道示例为例, 该示例从一个文件读取并将其写入另一个文件。
文件:main.js
var fs = require("fs");
// Create a readable stream
var readerStream = fs.createReadStream('input.txt');
// Create a writable stream
var writerStream = fs.createWriteStream('output.txt');
// Pipe the read and write operations
// read input.txt and write data to output.txt
readerStream.pipe(writerStream);
console.log("Program Ended");
打开Node.js并运行mian.js
node main.js
文章图片
现在, 你可以看到在保存” main.js” 的位置创建了一个名为” output.txt” 的文本文件。文件。就我而言, 它在桌面上。
打开” output.txt” , 你将看到以下内容。
文章图片
Node.js链流 链接流是一种通过将一个流的输出连接到另一个流来创建多个流操作链的机制。通常用于管道作业。
让我们以管道和链接为例来压缩文件, 然后解压缩同一文件。
文件:main.js
var fs = require("fs");
var zlib = require('zlib');
// Compress the file input.txt to input.txt.gz
fs.createReadStream('input.txt')
.pipe(zlib.createGzip())
.pipe(fs.createWriteStream('input.txt.gz'));
console.log("File Compressed.");
打开Node.js命令提示符并运行main.js
node main.js
你将得到以下结果:
文章图片
【Node.js流操作】现在, 你将看到文件” input.txt” 已压缩, 并且在当前文件中创建了一个名为” input.txt.gz” 的新文件。
解压缩同一文件:将以下代码放入js文件” main.js”
文件:main.js
var fs = require("fs");
var zlib = require('zlib');
// Decompress the file input.txt.gz to input.txt
fs.createReadStream('input.txt.gz')
.pipe(zlib.createGunzip())
.pipe(fs.createWriteStream('input.txt'));
console.log("File Decompressed.");
打开Node.js命令提示符并运行main.js
node main.js
文章图片
推荐阅读
- Node.js字符串解码器StringDecoder
- Node.js程序包管理器npm
- Node.js查询字符串
- Node.js Punycode用法
- Node.js进程详细解释
- Node.js路径示例
- Node.js os对象
- Node.js MySQL更新记录
- Node.js网络操作操作