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


Node.js Buffer buf.fill(value[, offset[, end]][, encoding])用法及代码示例


buf.fill(value[, offset[, end]][, encoding])

历史
版本变化
v11.0.0

抛出 ERR_OUT_OF_RANGE 而不是 ERR_INDEX_OUT_OF_RANGE

v10.0.0

end 值会引发 ERR_INDEX_OUT_OF_RANGE 错误。

v10.0.0

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

v10.0.0

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

v5.7.0

现在支持encoding 参数。

v0.5.0

添加于:v0.5.0


参数

用指定的 value 填充 buf 。如果没有给出offsetend,则将填充整个buf

import { Buffer } from 'node:buffer';

// Fill a `Buffer` with the ASCII character 'h'.

const b = Buffer.allocUnsafe(50).fill('h');

console.log(b.toString());
// Prints: hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhconst { Buffer } = require('node:buffer');

// Fill a `Buffer` with the ASCII character 'h'.

const b = Buffer.allocUnsafe(50).fill('h');

console.log(b.toString());
// Prints: hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh

如果 value 不是字符串、Buffer 或整数,则 value 被强制转换为 uint32 值。如果结果整数大于 255(十进制),则 buf 将用 value & 255 填充。

如果 fill() 操作的最终写入落在 multi-byte 字符上,则仅写入适合 buf 的该字符的字节:

import { Buffer } from 'node:buffer';

// Fill a `Buffer` with character that takes up two bytes in UTF-8.

console.log(Buffer.allocUnsafe(5).fill('\u0222'));
// Prints: <Buffer c8 a2 c8 a2 c8>const { Buffer } = require('node:buffer');

// Fill a `Buffer` with character that takes up two bytes in UTF-8.

console.log(Buffer.allocUnsafe(5).fill('\u0222'));
// Prints: <Buffer c8 a2 c8 a2 c8>

如果value包含无效字符,则被截断;如果没有有效的填充数据,则抛出异常:

import { Buffer } from 'node:buffer';

const buf = Buffer.allocUnsafe(5);

console.log(buf.fill('a'));
// Prints: <Buffer 61 61 61 61 61>
console.log(buf.fill('aazz', 'hex'));
// Prints: <Buffer aa aa aa aa aa>
console.log(buf.fill('zz', 'hex'));
// Throws an exception.const { Buffer } = require('node:buffer');

const buf = Buffer.allocUnsafe(5);

console.log(buf.fill('a'));
// Prints: <Buffer 61 61 61 61 61>
console.log(buf.fill('aazz', 'hex'));
// Prints: <Buffer aa aa aa aa aa>
console.log(buf.fill('zz', 'hex'));
// Throws an exception.

相关用法


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