You are currently viewing Node.js Buffer | Метод Buffer.fill()

Node.js Buffer | Метод Buffer.fill()

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 <строка> | <Буфер> | <Uint8Array> | <целое число> Значение, которым нужно заполнить buf.
  • offset <целое число> Количество байтов, которые необходимо пропустить перед началом заполнения buf
  • По умолчанию: 0.
  • end <целое число> Где остановить заполнение buf(не включено). 
  • По умолчанию: buf.length.
  • encoding <строка> Кодировка value if value — это строка. 
  • По умолчанию: 'utf8'.
  • Возвращает: <Буфер> Ссылку на buf.

buf Заполняется указанным value. Если offset и end не указаны, то все buf будет заполнено:

import { Buffer } from 'buffer';

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

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

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

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

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

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

value приводится к uint32 значению, если оно не является строкой Buffer или целым числом. Если полученное целое число больше 255 (десятичное), buf будет заполнено value & 255.

Если окончательная запись fill() операции приходится на многобайтовый символ, то записываются только байты этого символа, которые вписываются в buf:

import { Buffer } from '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('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 '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('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.

Буфер — это временное хранилище памяти, в котором хранятся данные при их перемещении из одного места в другое. Это похоже на массив целых чисел.

Метод Buffer.fill() помещает данные в экземпляр буфера. Если смещение и конечное значение не заданы, то будет заполнен полный буфер.

Синтаксис:

buffer.fill( string, offset, end, encoding )

Параметры: Этот метод принимает четыре параметра, как указано выше и описано ниже:

  • string (строка): Он содержит данные, которые вам нужно поместить в буфер.
  • start (начало): Индекс, с которого нужно начать заполнение буфера. Его значение по умолчанию равно 0.
  • end (конец): Индекс, до которого вам нужно заполнить буфер. Значение по умолчанию-buffer.length
  • encoding (кодирование): Кодировка данных, если данные в строковом формате. Значение по умолчанию-utf8.

Return Value (Возвращаемое Значение): Этот метод возвращает объект буфера, содержащий значения.

Ниже приведены примеры, иллюстрирующие использование Метод Buffer.fill() в Node.js:

Пример 1:

// Node.js program to demonstrate the
// Buffer.fill() Method

// Allocating the space to buffer instance
var buffer = Buffer.alloc(13);

buffer.fill('programbox');

console.log(buffer.toString());

Выход:

programbox

Пример 2:

// Node.js program to demonstrate the
// Buffer.fill() Method

// Allocating the space to buffer instance
var buffer = Buffer.alloc(7);

buffer.fill('geek', 3);

// Prints : ' geek' as we are starting
// from index 3 to fill the buffer
console.log(buffer.toString());

Выход:

 geek

Примечание: Вышеуказанная программа будет скомпилирована и запущена с помощью node index.js команда.

Ссылка: https://nodejs.org/api/buffer.html#buffer_buf_fill_value_offset_end_encoding