前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >NodeJs-stream操作大文件

NodeJs-stream操作大文件

作者头像
efonfighting
发布2020-02-21 18:03:20
1.7K0
发布2020-02-21 18:03:20
举报
文章被收录于专栏:一番码客一番码客

本文目录

stream(流)

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

stream(流)

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

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

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

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

常用的API

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

代码示例

代码语言:javascript
复制
'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操作本地大文件的方法。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一番码客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • stream(流)
  • 常用的API
  • 代码示例
  • 参考
  • 学习视频
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档