fs.readFile
在读取小文件时很方便,因为它是一次把文件全部读取到内存中;
假如我们要读取一个3G大小的电影文件,那么内存不就爆了么?node提供了流对象来读取大文件。
流的方式其实就是把所有的数据分成一个个的小数据块(chunk),一次读取一个chunk,分很多次就能读取特别大的文件,写入也是同理。
这种读取方式就像水龙头里的水流一样,一点一点的流出来,而不是一下子涌出来,所以称为流。
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);
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。