nodejs之流数据读取与写入

1、(fs.createReadStream)当文件比较大时,建议使用文件流读取,不会出现卡顿现象,demo如下。

const  fs = require('fs');

//流的方式读取文件
var readStream = fs.createReadStream("fs/input.txt");

var str = "";
var count = 0; //读取次数
//流每次读取一块,都会广播一次data事件,通过on来接受广播事件
readStream.on('data',function (chunk) {
    str +=chunk;
    count++;
})

//读取文件完成后,会广播一个end事件
readStream.on('end',function (chunk) {
    console.log(str);
    console.log(count);
})

//读取失败,会广播一个error事件
readStream.on('error',function (err) {
    console.log(err);
})

2、(fs.createWriteStream)以文件流写入数据,demo如下。

var fs = require('fs');
var data = "从数据库读取的数据,保存到文件中";

var writeStream = fs.createWriteStream("fs/output.txt");


for(var i = 0; i<100;i++){
    //批量写入数据
   // writeStream.write(data,'utf8');
}
//写入数据,会覆盖原有数据
writeStream.write(data,'utf8');

//标记写入完成
writeStream.end();

//标记写入完成后,会广播一个finish事件
writeStream.on('finish',function () {
    console.log("写入完成");
})

//标记写入失败后,会广播一个error事件
writeStream.on('error',function () {
    console.log("写入失败");
})

3、读取流(readStream)中的pipe函数实现文件内容复制。

//复制文件功能
const  fs = require('fs');

var readStream =  fs.createReadStream('fs/input.txt');

var writeStream = fs.createWriteStream("fs/output.txt");

//覆盖原有数据
readStream.pipe(writeStream);

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

 

posted @ 2019-02-20 14:42  小白啊小白,Fighting  阅读(1499)  评论(0编辑  收藏  举报