nodejs项目实战教程07——流
1. 文件可写流
在demo08文件夹中,创建以下文件,往input.txt文件中写入字符
app.js:
const fs = require('fs')
let str = ''
for(let i = 0;i < 5000;i++){
str = str + '这是数据库的数据,需要保存起来hhhhhhhhhhhh\n'
}
// 创建写入流
let writeStream = fs.createWriteStream('./data/input.txt')
// 往文件中写入
writeStream.write(str)
// 标记写入完成,不加的话无法触发finish事件
writeStream.end()
writeStream.on('finish',()=>{
console.log('写入完成')
})
2. 文件可读流
从input.txt文件中以流的方式读取字符,并且计算读取次数。
app02.js:
const fs = require('fs')
let str = ''
let count = 0
// 创建读取流
let readStream = fs.createReadStream('./data/input.txt')
// 获取文件中的字符,并且计算读取次数
readStream.on('data',(data)=>{
str = str + data
count++
})
// 输出读取结果和次数
readStream.on('end',()=>{
console.log('str:',str)
console.log('count:',count)
})
readStream.on('error',(err)=>{
console.log('error:',err)
})
3. 文件管道流——主要用于复制大文件
将一张图片以管道的方式复制到data文件夹中
app03.js:
const fs = require('fs')
let readStream = fs.createReadStream('./a.jpg')
let writeStream = fs.createWriteStream('./data/a.jpg')
// 将读取流的数据以管道的形式复制到写入流的文件中
readStream.pipe(writeStream)