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完成了')
})