zoukankan      html  css  js  c++  java
  • 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("程序执行完毕");
  • 相关阅读:
    MySQL 删除有外键约束的表数据
    Python 类装饰器解析
    保持SSH连接的linux服务器不断线
    数字货币交易所常用概念
    Python f-string
    Linux sed命令
    CAS机制详解
    MySQL缓存机制
    PHP网络请求优化
    Java三大特性---继承
  • 原文地址:https://www.cnblogs.com/ywjfx/p/10406514.html
Copyright © 2011-2022 走看看