fs模块文件读取
- 异步读取 readFile
- 同步读取readFileSync
const fs = require('fs')
// 异步
fs.readFile('./劝学诗.txt',(err,data)=>{
if(err){
console.log('失败')
return
}
// 直接输出data获取到的是Buffer,转换成字符串查看内容 使用toString
console.log(data.toString(),'成功')
})
// 同步
let data = fs.readFileSync('./劝学诗.txt')
console.log(data.toString())
- 流式读取createReadStream
当读取文件的时候会将文件分块读取,每次读取64KB大小文件,读取大文件可以提高读取效率
const fs = require('fs')
// 创建流
const rs = fs.createReadStream('./劝学诗.txt')
// 绑定data事件
rs.on('data',chunk=>{
console.log(chunk)
})
// end 事件(可选)
res('end',()=>{
console.log('读取完成')
})
延申-使用读取和写入实现文件复制功能
流式实现功能复制 实际内存占用量要比普通小很多
const fs = require('fs')
// 直接复制
// 读取文件 示例就用同步了
let data = fs.readFileSync('./劝学诗.txt')
fs.writeFileSync('./劝学诗-1.txt',data)
// 流式复制(推荐)
//创建流式读取
const rs = fs.createReadStream('./劝学诗.txt')
// 创建流式写入
const ws = fs.creayteWriteStream('./劝学诗-2.txt')
// 绑定事件
rs.on('data',chunk=>{
// 每读取成功一部分就写入一部分
ws.write(chunk)
})
// 延申知识对于流式可写简便方式,这样也能实现流式的复制
rs.pipe(ws)
- 学习的同时整理出来,供大家参考学习