Node学习-fs文件流

关于文件流本人了解不多,暂时先学会用法,理解作用是什么,以后有成长了再重来

  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)

      

原文地址:https://www.cnblogs.com/chenghuayike/p/14172688.html