Node.js Stream(流)

从流中读取数据

创建 input.txt 文件,内容如下:

菜鸟教程官网地址:www.runoob.com

创建 main.js 文件, 代码如下:

var fs = require("fs");

var data = '';

// 创建可读流

var readerStream = fs.createReadStream('input.txt');

// 设置编码为 utf8。

readerStream.setEncoding('UTF8');

// 处理流事件 --> 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("程序执行完毕");

以上代码执行结果如下:

程序执行完毕

菜鸟教程官网地址:www.runoob.com

写入流

创建 main.js 文件, 代码如下:

var fs = require("fs");

var data = '菜鸟教程官网地址:www.runoob.com';

// 创建一个可以写入的流,写入到文件 output.txt 中

var writerStream = fs.createWriteStream('output.txt');

// 使用 utf8 编码写入数据

writerStream.write(data,'UTF8');

// 标记文件末尾

writerStream.end();

// 处理流事件 --> data, end, and error

writerStream.on('finish', function() {

    console.log("写入完成。");

});

writerStream.on('error', function(err){

  console.log(err.stack);

});

console.log("程序执行完毕");

以上程序会将 data 变量的数据写入到 output.txt 文件中。代码执行结果如下:

$ node main.js

程序执行完毕

写入完成。

查看 output.txt 文件的内容:

$ cat output.txt

菜鸟教程官网地址:www.runoob.com

管道流

创建 main.js 文件, 代码如下:

var fs = require("fs");

// 创建一个可读流

var readerStream = fs.createReadStream('input.txt');

// 创建一个可写流

var writerStream = fs.createWriteStream('output.txt');

// 管道读写操作

// 读取 input.txt 文件内容,并将内容写入到 output.txt 文件中

readerStream.pipe(writerStream);

console.log("程序执行完毕");

你可能感兴趣的:(Node.js Stream(流))