专栏首页一番码客NodeJs-stream操作大文件

NodeJs-stream操作大文件

本文目录

stream(流)

常用的API代码示例参考学习视频

stream(流)

fs.readFile在读取小文件时很方便,因为它是一次把文件全部读取到内存中;

假如我们要读取一个3G大小的电影文件,那么内存不就爆了么?node提供了流对象来读取大文件。

流的方式其实就是把所有的数据分成一个个的小数据块(chunk),一次读取一个chunk,分很多次就能读取特别大的文件,写入也是同理。

这种读取方式就像水龙头里的水流一样,一点一点的流出来,而不是一下子涌出来,所以称为流。

常用的API

  • fs.createReadStream/fs.createWriteStream
  • reader.pipe(writer)

代码示例

'use strict'
let fs = require("fs");

fs.readFile("MobyLinuxVM.vhdx", (err, data)=>{
    console.log(err);
});

let reader = fs.createReadStream("MobyLinuxVM.vhdx");
let writer = fs.createWriteStream("MobyLinuxVM-copy.vhdx");
let len = 0;
reader.on('data', (chunk)=>{
    //chunk是每次读取到的一小块字节
    console.log(chunk.length);
    len += chunk.length;
    writer.write(chunk, ()=>{
        console.log("写入了一个chunk");
    })
});
reader.on('end', ()=>{
   console.log("读取完毕,总大小:"+len);
});

reader.pipe(writer);

参考

  • 黑马程序员 120天全栈区块链开发 开源教程 https://github.com/itheima1/BlockChain

学习视频

一番同步了对应的学习视频到B站,长按识别可访问一番B站主页观看。

一番雾语:nodejs操作本地大文件的方法。

本文分享自微信公众号 - 一番码客(efonfighting),作者:Efonfighting

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-01-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • NodeJs-发展历史和异步IO机制

    浏览器之战Node的诞生浏览器端JS和Node端JS的区别理解NodeJS的事件驱动和异步IONodeJs能做什么?

    efonfighting
  • python解析xml文件

    本来今天准备学习下electron的,结果npm工具的安装真是费了劲,网速差的不得了。为了完成今天的日更,只能放弃,今天来谢谢python的xml解析吧。

    efonfighting
  • 【JavaScript小项目】用户注册校验

    efonfighting
  • 贝叶斯公式详解

    假如今天小编过生日,我有三个朋友分别来给我送礼物,假设他们送的礼物都是糖,在他们送的礼物中有的糖是软的有的是硬的,由于笔者牙不太好喜欢出软的糖,所以就大致查看了...

    opprash
  • [Error] Segmentation fault

    zhwhong
  • 避免成为“优秀的程序员” | TW洞见

    今日洞见 文章作者来自ThoughtWorks:Deon Thomas,译者来自:陈翔。图片来自网络。 感谢ThoughtWorks校队小组:张力文 刘若然 ...

    ThoughtWorks
  • 不懂代码的,但是这些都看懂了。程序员段子合集

    程序猿要了3个孩子,分别取名叫Ctrl、Alt 和Delete,如果他们不听话,程序猿就只要同时敲他们一下就会好的。

    一墨编程学习
  • 基于Netty的百万级推送服务设计要点

    最近很多从事移动互联网和物联网开发的同学给我发邮件或者微博私信我,咨询推送服务相关的问题。问题五花八门,在帮助大家答疑解惑的过程中,我也对问题进行了总结,大概可...

    黄泽杰
  • 基于Netty实现海量接入的推送服务技术要点

    用户1263954
  • 身份证号码的正则表达式及验证详解(JavaScript,Regex)

    在做用户实名验证时,常会用到身份证号码的正则表达式及校验方案。本文列举了两种验证方案,大家可以根据自己的项目实际情况,选择适合的方案。

    毛瑞

扫码关注云+社区

领取腾讯云代金券