Node基础_Buffer缓冲区

Posted sunjiaojiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node基础_Buffer缓冲区相关的知识,希望对你有一定的参考价值。

 Buffer(缓冲区)
- Buffer的结构和数组很像,操作的方法也和数组类似
- 数组中不能存储二进制的文件,而Buffer就是专门用来存储二进制数据
- 使用buffer不需要引入模板,直接使用即可
- 在buffer中存储的都是二进制数据,但是在显示时都是以16进制的形式显示
buffer中的每一个元素的范围是从00 - ff 0 - 255
00000000 - 11111111

计算机 一个0 或 一个1 我们称为一位(bit)

8bit = 1byte(字节)
1024byte = 1kb
1024kb = 1mb
1024mb = 1gb
1024gb = 1tb

buffer中的一个元素,占用内存的一个字节

- Buffer的大小一旦确定,则不能修改,Buffer实际上是对底层内存的直接操作

  var str = "Hello 苏崽崽";

  //将一个字符串保存到buffer中
  var buf = Buffer.from(str);

  console.log(buf.length); //占用内存大小
  console.log(str.length); //字符串的长度
  console.log(buf);

技术图片

技术图片

 

//创建一个指定大小的buffer
//buffer构建函数都是不推荐使用的
var buf2 = new Buffer(10); //10个字节的buffer
console.log(buf2.length);

 

//创建一个10个字节的buffer
var buf2 = Buffer.alloc(10);
//通过索引,来操作buf中的元素
buf2[0] = 88;
buf2[1] = 255;
buf2[2] = 0xaa;
buf2[3] = 255;

//只要数字在控制台或页面输出一定是10进制,toString可以转换进制
console.log(buf2[2].toString(16));
for(var i =0;i<buf2.length;i++)
    console.log(buf2[i]);
//Buffer.allocUnsafe(size)创建一个指定大小的buffer,但是buffer中可能含有敏感数据

var buf3 = Buffer.allocUnsafe(10);
console.log(buf3);
 

Buffer.from(str)
将一个字符串转换为buffer

Buffer.alloc(size) 创建一个指定大小的Buffer
Buffer.alloUnsafe(size) 创建一个指定大小的Buffer,但可能包含敏感数据
buf.toString() 将缓冲区中的数据转换为字符串
var buf4 = Buffer.from("我是一段文本数据");
console.log(buf4.toString());

 

注:具体操作用到Buffer缓冲区时,参考:http://nodejs.cn/api/buffer.html 官方文档查询使用方法

 

以上是关于Node基础_Buffer缓冲区的主要内容,如果未能解决你的问题,请参考以下文章

Node.js Buffer(缓冲区)

笔记:Node.js 的 Buffer 缓冲区

Node.js Buffer(缓冲区)

Node.js:Buffer(缓冲区)介绍及常用方法

nodejs-09-Buffer

nodejs-09-Buffer