當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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]])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。