Buffer.alloc()

Buffer.alloc(size[, fill[, encoding]])

  • size {Number}
  • fill {Value} 默认:undefined
  • encoding {String} 默认:utf8

分配一个 size 字节大小的新 Buffer。如果 fill 是 undefined ,该 Buffer 将被零填充(zero-filled)。+

const buf = Buffer.alloc(5);
console.log(buf);
// <Buffer 00 00 00 00 00>

size 必须小于等于 require(‘buffer‘).kMaxLength(在64位架构上 kMaxLength 的大小是 (2^31)-1)的值,否则将抛出一个 RangeError 的错误。如果 size 小于 0 将创建一个特定的 0 长度(zero-length )的 Buffer。
如果指定了 fill 参数,将通过调用 buf.fill(fill) 初始化当前 Buffer 的分配。

const buf = Buffer.alloc(5, 'a');
console.log(buf);
// <Buffer 61 61 61 61 61>

如果同时指定了 fill 和 encoding 参数,将通过调用 buf.fill(fill, encoding) 初始化当前 Buffer 的分配。例如:

const buf = Buffer.alloc(11, 'aGVsbG8gd29ybGQ=', 'base64');
console.log(buf);
// <Buffer 68 65 6c 6c 6f 20 77 6f 72 6c 64>

调用 Buffer.alloc(size) 方法显然要比替代的 Buffer.allocUnsafe(size) 要慢,但可以确保新建的 Buffer 实例的内容不会包含敏感数据。
如果 size 不是一个数字则抛出一个 TypeError 错误。

原文地址:https://www.cnblogs.com/lalalagq/p/9908498.html

时间: 2024-10-09 07:03:24

Buffer.alloc()的相关文章

TypeError: Buffer.alloc is not a function

错误信息:TypeError: Buffer.alloc is not a function 截图如下: 解决办法(依次从上往下执行): sudo npm cache clean -f sudo npm install -g n sudo n 6.4.0 shutdown -h now 主要是参考stackoverflow上面的,感觉这个网站很实用,基本上很多问题都可以找到解决办法. 解决问题链接:https://stackoverflow.com/questions/36499840/type

linux V4L2驱动中新旧版本下video buffer alloc与mmap的处理区别

首先需要说明目前在比较新的内核中已经采用了 vb2_queue与vb2_buffer来替代旧版本内核中经常使用到的 videobuf_queue与videobuf_buffer. 两者主要用于对用户层申请VIDIOC_REQBUF时的使用. 从用户层Request的Memory的类型区分,典型的两种是: V4L2_MEMORY_USERPTR以及V4L2_MEMORY_MMAP,前者的内存主动权位于用户层,即驱动中的视频输出内存地址由用户层来提供,后者MMAP操作的内存缓存类型一般需要由驱动自己

Node buffer模块缓冲区

//1:字节 byte//1024b = 1kb [千字节]//1024kb = 1mb [兆字节]//1024mb = 1gb [吉字节]//1024gb = 1tb [梯]//1024tb = 1pb //1:创建大小为1024字节缓冲区var buf1 = Buffer.alloc(1024);console.log(buf1);console.log(buf1.length); //2:创建3KB大小缓冲区var buf2 = Buffer.alloc(1024*3);console.l

nodeJS之二进制buffer对象

前面的话 在ES6引入TypedArray之前,JavaScript语言没有读取或操作二进制数据流的机制.Buffer类被引入作为Nodejs的API的一部分,使其可以在TCP流和文件系统操作等场景中处理二进制数据流.现在TypedArray已经被添加进ES6中,Buffer类以一种更优与更适合Node.js用例的方式实现了Uint8Array.本文将详细介绍buffer对象 概述 由于应用场景不同,在Node中,应用需要处理网络协议.操作数据库.处理图片.接收上传文件等,在网络流和文件的操作中

Nodejs学习笔记(四)-----Buffer

Node.js Buffer(缓冲区) JavaScript 语言自身只有字符串数据类型,没有二进制数据类型. 但在处理像TCP流或文件流时,必须使用到二进制数据.因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区. 在 Node.js 中,Buffer 类是随 Node 内核一起发布的核心库.Buffer 库为 Node.js 带来了一种存储原始数据的方法,可以让 Node.js 处理二进制数据,每当需要在 Node.js 中处理I/O操作中移动

None.js 第五步 Buffer(缓冲区)

// 存数据,取数据; buf = Buffer.alloc(26); for (var i = 0; i < 26; i++) { buf[i] = i + 97; } console.log(buf.toString('ascii')); console.log(buf.toString('ascii',0,5)); console.log(buf.toString('utf8',0,5)); console.log(buf.toString(undefined, 0, 5)); 输出 ab

node随笔-二进制数组buffer

Buffer简介 在 ECMAScript 2015 (ES6) 引入 TypedArray 之前,JavaScript 语言没有读取或操作二进制数据流的机制. Buffer 类被引入作为 Node.js API 的一部分,使其可以在 TCP 流或文件系统操作等场景中处理二进制数据流. TypedArray 现已被添加进 ES6 中,Buffer 类以一种更优化.更适合 Node.js 用例的方式实现了 Uint8Array API. Buffer 类的实例类似于整数数组,但 Buffer 的大

Buffer 知识点

在 ECMAScript 2015 引入 TypedArray 之前,JavaScript 语言没有读取或操作二进制数据流的机制. Buffer 类被引入作为 Node.js API 的一部分,使其可以在 TCP 流或文件系统操作等场景中处理二进制数据流. TypedArray 现已被添加进 ES6 中,Buffer 类以一种更优化.更适合 Node.js 用例的方式实现了 Uint8Array API. Buffer 类的实例类似于整数数组,但 Buffer 的大小是固定的.且在 V8 堆外分

Buffer.concat()

Buffer.concat(list[, totalLength]) list {Array} 需要连接的 Buffer 对象数组 totalLength {Number} 上述需要被连接的 Buffer 的总大小. 返回:{Buffer} 返回一个连接了 list 中所有 Buffer 的新 Buffer . 如果 list 中没有项目,或者当 totalLength 为 0 时,将返回一个 0 长度(zero-length)的 Buffer . 如果没有提供 totalLength ,它将计