【node】3、fs文件读写流

fs.createReadStream读取指定文件的可读流:

const fs = require('fs');
const rs = fs.createReadStream('./1.mp4');
//resume开启可读流
rs.resume()
//通过rs.readableFlowing 查看可读流的状态  默认为null 表示可读流是静止的
console.log(rs.readableFlowing)	//true
//on end监听文件读取读取完毕触发回调函数
rs.on('end',function () {
   console.log('数据已经读取完成了')
})

fs.createWriteStream指定文件写入的可写流:

const fs = require('fs');  //引入fs模块
const rs = fs.createReadStream('./1.mp4');	//创建读取流
const ws = fs.createWriteStream('./2.mp4');	//创建写入流
console.time(2)	//打印初始流动时间
//no data可直接让可读流流动 并获得读取到的数据
rs.on('data',function(datas){  //data:每次读取到的数据
  console.log(rs.readableFlowing,datas)
  ws.write(datas)  //将读取到的数据写入2.mp4
})
//on end监听文件读取读取完毕触发回调函数
rs.on('end',function () {
   console.time(2)	//打印读取流结束时间
   console.log('1.mp4复制到2.mp4完成了')
})

pipe方法让可读流的数据自动 流动到可写流:
实现文件复制:

const fs = require('fs');  //引入fs模块
const rs = fs.createReadStream('./1.mp4');	//创建读取流
const ws = fs.createWriteStream('./2.mp4');	//创建写入流

rs.pipe(ws) //直接实现文件复制

//on end监听文件读取读取完毕触发回调函数
rs.on('end',function () {
   console.time(2)	//打印读取流结束时间
   console.log('1.mp4复制到2.mp4完成了')
})
发布了218 篇原创文章 · 获赞 35 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/qq_41614928/article/details/102529801