Buffer.alloc()
阿新 • • 發佈:2018-11-05
錯誤 erro range safe 創建 utf require buffer efi
分配一個 size 字節大小的新 Buffer。如果 fill 是 undefined ,該 Buffer 將被零填充(zero-filled)。+
如果指定了 fill 參數,將通過調用 buf.fill(fill) 初始化當前 Buffer 的分配。
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。
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 錯誤。
Buffer.alloc()