当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js Buffer.alloc(size[, fill[, encoding]])用法及代码示例


静态方法:Buffer.alloc(size[, fill[, encoding]])

历史
版本变化
v15.0.0

对于无效的输入参数,抛出 ERR_INVALID_ARG_VALUE 而不是 ERR_INVALID_OPT_VALUE。

v10.0.0

尝试用零长度缓冲区填充非零长度缓冲区会触发抛出的异常。

v10.0.0

fill 指定无效字符串会触发抛出的异常。

v8.9.3

fill 指定无效字符串现在会导致 zero-filled 缓冲区。

v5.10.0

添加于:v5.10.0


参数

分配 size 字节的新 Buffer。如果 fillundefined ,则 Buffer 将是 zero-filled。

import { Buffer } from 'node:buffer';

const buf = Buffer.alloc(5);

console.log(buf);
// Prints: <Buffer 00 00 00 00 00>const { Buffer } = require('node:buffer');

const buf = Buffer.alloc(5);

console.log(buf);
// Prints: <Buffer 00 00 00 00 00>

如果size大于 buffer.constants.MAX_LENGTH 或小于0,则抛出 ERR_INVALID_ARG_VALUE

如果指定了fill,则分配的Buffer 将通过调用 buf.fill(fill) 来初始化。

import { Buffer } from 'node:buffer';

const buf = Buffer.alloc(5, 'a');

console.log(buf);
// Prints: <Buffer 61 61 61 61 61>const { Buffer } = require('node:buffer');

const buf = Buffer.alloc(5, 'a');

console.log(buf);
// Prints: <Buffer 61 61 61 61 61>

如果同时指定 fillencoding,则分配的 Buffer 将通过调用 buf.fill(fill, encoding) 来初始化。

import { Buffer } from 'node:buffer';

const buf = Buffer.alloc(11, 'aGVsbG8gd29ybGQ=', 'base64');

console.log(buf);
// Prints: <Buffer 68 65 6c 6c 6f 20 77 6f 72 6c 64>const { Buffer } = require('node:buffer');

const buf = Buffer.alloc(11, 'aGVsbG8gd29ybGQ=', 'base64');

console.log(buf);
// Prints: <Buffer 68 65 6c 6c 6f 20 77 6f 72 6c 64>

调用 Buffer.alloc() 可能比替代方法 Buffer.allocUnsafe() 慢得多,但可以确保新创建的 Buffer 实例内容永远不会包含来自先前分配的敏感数据,包括可能尚未为 Buffer 分配的数据。

如果 size 不是数字,则会抛出 TypeError

相关用法


注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 Buffer.alloc(size[, fill[, encoding]])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。