感谢b站教程:Nodejs教程_Nodejs+Koa2入门实战视频教程-更新
读取流
const fs = require('fs')// 读取流var readStream = fs.createReadStream('./in.txt')let count = 0let str = ''// 读取数据,数据过大则会分批读取readStream.on('data', (data) => {str += datacount++})// 监听是否读取完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)