关于文件流本人了解不多,暂时先学会用法,理解作用是什么,以后有成长了再重来
nodejs文件模块-文件流:(我认为文件流相当于懒加载,如同网页内容的一些大图,或者是长文本,是一次性加载完毕随后展示;流式相当于一次性加载一部分,分多次加载。)
-- 以流的方式读取文件:
具体用法:
1 var readStream = fs.createReadStream('./data/input.txt',{})
指向一个文件地址,创建一个可监听对象;可传第二参数,配置属性,具体自行查看node官网
1 readStream.on('data', (data) => { 2 str += data; 3 count++ 4 })
监听流(或读取流),回调返回每次流读取的内容:data
1 readStream.on('end', () => { 2 console.log(str); 3 console.log(count); 4 })
监听‘读取流’结束,统计‘读取流’结果和使用的次数
1 readStream.on('error', (err) => { 2 console.log(err); 3 })
监听执行异常;
作用:流式读取文件内容。优化用户体验?或者提高访问速度?也许都有吧。
-- 以流的方式写入文件 (文件存在即写入(覆盖),不存在创建再写入)
具体用法:
1 var writeStream = fs.createWriteStream('./data/output.txt');
指定写入地址
1 writeStream.write(str)
确定写入内容(str)
1 writeStream.end();
标记写入完成 ↑↑↑ (有此项才能监听结束)↓↓↓
1 writeStream.on('finish',()=>{ 2 console.log('写入完成') 3 })
监听写入结束
作用:流式写入文件内容。
-- 管道流
(本人认为:相当于复制)
具体用法:
// 先读取文件 var readStream = fs.createReadStream('./data/input.txt') // 确定写入位置 var writeStream = fs.createWriteStream('./data/output.txt'); // 执行(相当于复制文件) readStream.pipe(writeStream)