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("程序执行完毕");