感谢b站教程:Nodejs教程_Nodejs+Koa2入门实战视频教程-2020年更新
- 读取流
const fs = require('fs')
// 读取流
var readStream = fs.createReadStream('./in.txt')
let count = 0
let str = ''
// 读取数据,数据过大则会分批读取
readStream.on('data', (data) => {
str += data
count++
})
// 监听是否读取完
readStream.on('end', (data) => {
console.log(str)
console.log(count)
})
// 监听错误
readStream.on('error', (err) => {
console.log(err)
})
- 写入流
const fs = require('fs')
let str = ''
for (let i = 0; i < 500; i++) {
str += '我是少了一个m的ema果,我为自己代言\n'
}
// 写入流
let writeStream = fs.createWriteStream('./out.txt')
writeStream.write(str)
// 标记文件末尾,一定要加此句,不然没法触发下面的方法
writeStream.end()
// 监听写入完成
writeStream.on('finish', () => {
console.log('写入完成')
})
- 管道流
管道流用于处理大文件,复制大文件到指定位置。
// 管道流用于处理大文件,复制大文件到指定位置
const fs = require('fs')
let readStream = fs.createReadStream('./in.jpg')
let writeStream = fs.createWriteStream('./out.jpg')
readStream.pipe(writeStream)