• nodejs之流数据读取与写入


    1、(fs.createReadStream)当文件比较大时,建议使用文件流读取,不会出现卡顿现象,demo如下。

    const  fs = require('fs');
    
    //流的方式读取文件
    var readStream = fs.createReadStream("fs/input.txt");
    
    var str = "";
    var count = 0; //读取次数
    //流每次读取一块,都会广播一次data事件,通过on来接受广播事件
    readStream.on('data',function (chunk) {
        str +=chunk;
        count++;
    })
    
    //读取文件完成后,会广播一个end事件
    readStream.on('end',function (chunk) {
        console.log(str);
        console.log(count);
    })
    
    //读取失败,会广播一个error事件
    readStream.on('error',function (err) {
        console.log(err);
    })

    2、(fs.createWriteStream)以文件流写入数据,demo如下。

    var fs = require('fs');
    var data = "从数据库读取的数据,保存到文件中";
    
    var writeStream = fs.createWriteStream("fs/output.txt");
    
    
    for(var i = 0; i<100;i++){
        //批量写入数据
       // writeStream.write(data,'utf8');
    }
    //写入数据,会覆盖原有数据
    writeStream.write(data,'utf8');
    
    //标记写入完成
    writeStream.end();
    
    //标记写入完成后,会广播一个finish事件
    writeStream.on('finish',function () {
        console.log("写入完成");
    })
    
    //标记写入失败后,会广播一个error事件
    writeStream.on('error',function () {
        console.log("写入失败");
    })

    3、读取流(readStream)中的pipe函数实现文件内容复制。

    //复制文件功能
    const  fs = require('fs');
    
    var readStream =  fs.createReadStream('fs/input.txt');
    
    var writeStream = fs.createWriteStream("fs/output.txt");
    
    //覆盖原有数据
    readStream.pipe(writeStream);
    
    console.log("程序执行完毕");
  • 相关阅读:
    CentOS7.4安装Docker
    责任链模式
    策略模式
    状态模式
    解释器模式
    备忘录模式
    中介者模式
    观察者模式
    迭代器模式
    private、default、protected和public的作用域
  • 原文地址:https://www.cnblogs.com/ywjfx/p/10406514.html
Copyright © 2020-2023  润新知