fs 文件读取:
利用文件读取而不是直接打开文本查看的目的是为了实现自动化
读取文件的应用场景:电脑开机/程序运行/播放视频音乐/上传文件...
一、异步读取
(1)语法:fs.readFile(path,[options],callback);
以之前写的文件写入为例:读取‘我可以(异步).txt’和‘data(同步).txt’
// (1)引入fs模块
const fs=require('fs');
// (2)异步读取
fs.readFile('./我可以(异步).txt',(err,data)=>{
if(err){
console.log('读取失败');
return;
}
console.log(data.toString());
});
})
输出结果:
二、同步读取
(1)语法:fs.readFileSync(path,[options]);
// (1)引入fs模块
const fs=require('fs');
// (2)同步读取
let data2=fs.readFileSync('./data(同步).txt');
console.log(data2.toString());
三、流式读取
(1)语法: fs.createReadStream(path,[options]);
举例:我在不同文件夹的lesson4的data下建立了一个a.txt。要读取a.txt内容
// (1)引入fs模块
const fs=require('fs');
// (2)创建读取流对象
const rs=fs.createReadStream('../lesson4/data/a.txt');
// (3)为这个读取流对象绑定data事件 chunk-大块
rs.on('data',chunk=>{
console.log(chunk.toString());
//若../lesson4/data/a.txt存放的是视频信息的话则不能够.toString() 不然会乱码。可以.length查看它的字节数
})
// (4)当读取流读取完毕后还会触发另外一个事件--end事件 它是可选事件
rs.on('end',()=>{
console.log('流式读取完成');
})