从零开始学Node.js(七):fs中的流以及管道流
本节涉及到的整个项目文件目录如下所示:
流的方式读入文件
const fs=require('fs');
//创建读取流
var readStream=fs.createReadStream('./data/input.txt');
var cnt=0;
var str='';
readStream.on('data',(data)=>{
str+=data;
cnt++;
})
readStream.on('end',()=>{
console.log(str);
console.log(cnt);
})
写入文件
const fs = require('fs');
//定义写入的数据
var str = '';
for (var i = 0; i < 100; i++) {
str += '这是新数据,需要保存到文件中的数据...\n';
}
var writeStream = fs.createWriteStream("./data/output.txt");
writeStream.write(str);
//标记写入完成,如果不写这一句,下面对文件写入完成的监听是无法运行的
//writeStream.end();
writeStream.on('finish', () => {
console.log('文件已全部写入完成...');
})
管道流
管道流:读取一个文件的内容并将内容写入到另一个文件中。常用于复制大文件。
- 创建可读流
- 创建可写流
- 管道读写操作
以复制图片为例。
const fs=require('fs');
var readStream=fs.createReadStream('./data/tour.jpg');
var writeStream=fs.createWriteStream('./data/tour2.jpg');
readStream.pipe(writeStream);