NodeJs的Buffer缓存与流式操作

BUFFER(缓存区)

初始buffer

  • buffer的结构和数组很相似,操作方法也很相似。
  • buffer可以存储任何类型的数据(包括二进制文件与文本文件)。
  • 比传统的二进制性能高。
  • 通过十六进制显示。

基本概念

  • 基本存储单位:字节(Byte),一个汉字占用3个字节,一个英文占用1个自己。
  • 最小存储单元:(bit)1Byte=8bit

创建buffer

数据转换

let str = "Hello World";

let buf = Buffer.from(str);
//将字符串转换为buffer
let str2 = buf.toString();//hello world
//将buf转换为字符串

创建指定大小的buffer

let buf = new Buffer(10);
console.log(buf.length);//10
//nodejs中不建议使用new Buffer

let buf2 = Buffer.alloc(10);
//创建空间并且清空为0
console.log(buf2.length);//10
//buffer大小确定后不能修改,因为他直接操作底层内存
console.log(buf2[0].toString(16));
//转为十六进制输出

let Buf3 = Buffer.allocUnsafe(10);
//创建空间但不清空buffer

流式读取文件

let fs = require("fs");

//创建可读流
let readF = fs.createReadStream("文件路径");
//创建可写流
let writeF = fs.createWriteStream("文件路径2");
readF.on("data",function(data){
   writeF.write(data);
   //写入可写流
});

readF.once("close",function(){
//监听可读流关闭
    writeF.end();
    //关闭可写流
});
//上面的方法太麻烦了所以。。。
readF.pipe(writeF);
//这句话表示上面的一片
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容