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

  1. const fs = require('fs');
  2.  
  3. //流的方式读取文件
  4. var readStream = fs.createReadStream("fs/input.txt");
  5.  
  6. var str = "";
  7. var count = ; //读取次数
  8. //流每次读取一块,都会广播一次data事件,通过on来接受广播事件
  9. readStream.on('data',function (chunk) {
  10. str +=chunk;
  11. count++;
  12. })
  13.  
  14. //读取文件完成后,会广播一个end事件
  15. readStream.on('end',function (chunk) {
  16. console.log(str);
  17. console.log(count);
  18. })
  19.  
  20. //读取失败,会广播一个error事件
  21. readStream.on('error',function (err) {
  22. console.log(err);
  23. })

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

  1. var fs = require('fs');
  2. var data = "从数据库读取的数据,保存到文件中";
  3.  
  4. var writeStream = fs.createWriteStream("fs/output.txt");
  5.  
  6. for(var i = ; i<;i++){
  7. //批量写入数据
  8. // writeStream.write(data,'utf8');
  9. }
  10. //写入数据,会覆盖原有数据
  11. writeStream.write(data,'utf8');
  12.  
  13. //标记写入完成
  14. writeStream.end();
  15.  
  16. //标记写入完成后,会广播一个finish事件
  17. writeStream.on('finish',function () {
  18. console.log("写入完成");
  19. })
  20.  
  21. //标记写入失败后,会广播一个error事件
  22. writeStream.on('error',function () {
  23. console.log("写入失败");
  24. })

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

  1. //复制文件功能
  2. const fs = require('fs');
  3.  
  4. var readStream = fs.createReadStream('fs/input.txt');
  5.  
  6. var writeStream = fs.createWriteStream("fs/output.txt");
  7.  
  8. //覆盖原有数据
  9. readStream.pipe(writeStream);
  10.  
  11. console.log("程序执行完毕");

nodejs之流数据读取与写入的更多相关文章

  1. nodeks —— fs模块 —— 从流中 读取和写入数据

    Fs流读取和写入数据 使用文件流来读取大文件不会卡顿 1, 从流中读取数据 var fs = require("fs"); var data = ''; var count = 0 ...

  2. NPOI 创建Excel,数据读取与写入

    <1> using System; using System.Collections.Generic; using System.Linq; using System.Web; using ...

  3. C#_Excel数据读取与写入_自定义解析封装类_支持设置标题行位置&使用excel表达式收集数据&单元格映射&标题映射&模板文件的参数数据替换

    本篇博客园是被任务所逼,而已有的使用nopi技术的文档技术经验又不支持我需要的应对各种复杂需求的苛刻要求,只能自己造轮子封装了,由于需要应对很多总类型的数据采集需求,因此有了本篇博客的代码封装,下面一 ...

  4. matlab将数据读取和写入txt文档

    原文链接 matlab中打开文件 fid = fopen(文件名,‘打开方式’): 说明:fid用于存储文件句柄值,如果fid>0,这说明文件打开成功. 另外,在这些字符串后添加一个“t”,如‘ ...

  5. R 数据读取与写入

    路径 getwd() #获取当前工作路径 setwd() #设置工作路径 获取普通文本数据 x = read.table("data.txt") #通过路径直接获取 x = rea ...

  6. File类的特点?如何创建File类对象?Java中如何操作文件内容,什么是Io流Io流如何读取和写入文件?字节缓冲流使用原则?

    重难点提示 学习目标 1.能够了解File类的特点(存在的意义,构造方法,常见方法) 2.能够了解什么是IO流以及分类(IO流的概述以及分类) 3.能够掌握字节输出流的使用(继承体系结构介绍以及常见的 ...

  7. FileStream文件流的读取和写入(为以后聊天工具的设计基础)

    using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Tex ...

  8. Java中的字符串流的读取和写入(创建文件并判断重复账户)

    各位我又来了!!哎!好心酸!我还没注册到三天!!没法登上博客的首页!!心累!! import java.io.BufferedOutputStream; import java.io.Buffered ...

  9. Java中IO流文件读取、写入和复制

    //构造文件File类 File f=new File(fileName); //判断是否为目录 f.isDirectory(); //获取目录下的文件名 String[] fileName=f.li ...

随机推荐

  1. linux命令详解——yum

    1.如果不知道确切名字可以:rpm -qa|grep pkgname 2.查看软件安装的文件:rpm -qpl pkgname 3.如果不知道提供某个软件的包是叫什么,可以使用类似下面的写法: yum ...

  2. 1.SpringBoot整合Mybatis(CRUD的实现)

    准备工具:IDEA  jdk1.8 Navicat for MySQL Postman 一.新建Project 选择依赖:mybatis  Web  Mysql  JDBC 项目结构 pom依赖: & ...

  3. PAT Basic 1016 部分A+B (15 分)

    正整数 A 的“D​A​​(为 1 位整数)部分”定义为由 A 中所有 D​A​​ 组成的新整数 P​A​​.例如:给定 8,D​A​​=6,则 A 的“6 部分”P​A​​ 是 66,因为 A 中有 ...

  4. <现代C++实战30讲>笔记 01 | 堆、栈、RAII:C++里该如何管理资源?

    1.堆(heap),动态分配的内存区域,分配之后需手工释放(new, delete, malloc, free) 这种方式需要分配内存,释放内存,因此可能会造成内存泄露,或者内存碎片的问题. 2.栈( ...

  5. ZOJ red black tree

    #include <bits/stdc++.h> #define fi first #define se second #define lson l,m,rt<<1 #defi ...

  6. CPU性能指标

    1,主频 主频 = 时钟频率,它是指CPU内部晶振的频率,常用单位为MHz,它反映了CPU的基本工作节拍; 时钟频率又称主频,它是指CPU内部晶振的频率,常用单位为MHz,它反映了CPU的基本工作节拍 ...

  7. package+explorer不显示项目的问题

    昨天遇到了这个问题,百度了一下,怎么搞的都有,但是感觉都不理想,晚上的时候才在网上又发现这个方法,今天试了一下,效果还不错,分享一下. 点击 Window ---> Close All Pers ...

  8. nginx跨域设置&文件上传大小限制

    在部署项目的时候碰到这么一个问题:XMLHttpRequest cannot load,下面阐述一下这个问题 问题背景: 用nginx+tomcat部署项目.tomcat用的8080端口,nginx用 ...

  9. Python2和Python3中列表推导式的不同

    Python2和Python3中列表推导式的不同 python2 >>> x = 'my girl' >>> lst = [x for x in 'hello'] ...

  10. TOP K和Partition对比

    TOP k算法适用于海量数据,不用一批装入内存.. partition算法需要全部装入内存排序,需要修改原数据..