Node.js Buffer — Буферы

Node.js Buffer — Буферы

От автора: чистый JavaScript является Unicode-оптимизированным, но это не относится к двоичным данным. При работе с потоками TCP или файловой системой необходимо обрабатывать потоки октетов. Node предоставляет класс Buffer, который содержит экземпляры объектов для хранения необработанных данных, подобных массиву целых чисел, но соответствующих строкам памяти, которые сохраняются вне V8.

В Node js Buffer — это глобальный класс, доступ к которому осуществляется в приложении без импорта модуля буферизации.

Создание буферов

Node Buffer может быть создан различными способами. Способ 1. Ниже приведен синтаксис создания неинициализированного буфера в 10 октетов:

Хотите узнать, что необходимо для создания сайта?

Посмотрите видео и узнайте пошаговый план по созданию сайта с нуля!

Смотреть видео

Способ 2. Ниже приведен синтаксис создания буфера из заданного массива:

Способ 3. Ниже приведен синтаксис создания буфера из заданной строки и опционального параметра — типа кодировки:

Хотя «utf8» является кодировкой по умолчанию, вы можете использовать любые из следующих кодировок: «ascii», «utf8», «utf16le», «ucs2», «base64» или «hex».

Запись в буфер

Синтаксис. Ниже приведен синтаксис метода для записи в буфер Node:

Параметры. Ниже приводится описание используемых параметров —

string — это строковые данные, которые должны быть записаны в буфер.

offset — это индекс буфера, с которого начинается запись. Значение по умолчанию — 0.

length — это количество байтов для записи. По умолчанию — buffer.length.

encoding – используемая кодировка. ‘utf8’ — это кодировка по умолчанию.

Возвращаемое значение

Этот метод возвращает количество записанных октетов. Если в буфере недостаточно места для размещения всей строки, будет записана часть строки.

Пример

После выполнения приведенной выше программы, мы получим следующий результат:

Чтение из буфера

Синтаксис. Ниже приведен синтаксис метода для чтения данных из буфера Node:

Параметры

Ниже приводится описание используемых параметров:

encoding – используемая кодировка. ‘utf8’ — это кодировка по умолчанию.

start — индекс, с которого начинается считывание данных, по умолчанию — 0.

end –индекс на котором заканчивается считывание из буфера, по умолчанию – окончание буфера.

Возвращаемое значение

Этот метод декодирует и возвращает строку из данных буфера, закодированных с использованием указанной кодировки.

Пример

После выполнения приведенной выше программы, мы получим следующий результат:

Преобразование буфера в JSON

Синтаксис. Ниже приведен синтаксис метода преобразования буфера Node в объект JSON:

Возвращаемое значение

Этот метод возвращает JSON-представление экземпляра Buffer.

Пример

После выполнения приведенной выше программы, мы получим следующий результат:

Конкатенация буферов

Синтаксис. Ниже приведен синтаксис метода для конкатенации буферов Node в один буфер Node:

Параметры

Ниже приводится описание используемых параметров —

list — список массивов объектов Buffer, которые будут объединены.

totalLength — это общая длина буферов для конкатенирования.

Возвращаемое значение

Этот метод возвращает экземпляр Buffer.

Пример

Хотите узнать, что необходимо для создания сайта?

Посмотрите видео и узнайте пошаговый план по созданию сайта с нуля!

Смотреть видео

После выполнения приведенной выше программы, мы получим следующий результат:

Сравнение буферов

Синтаксис. Ниже приведен синтаксис метода сравнения двух буферов Node:

Параметры

Ниже приводится описание используемых параметров —

otherBuffer — это второй буфер, который будет сравниваться с buf

Возвращаемое значение

Возвращает число, указывающее насколько второй буфер превосходит либо меньше, либо соответствует buf.

Пример

После выполнения приведенной выше программы, мы получим следующий результат:

Копирование буфера

Синтаксис. Ниже приведен синтаксис метода копирования буфера Node:

Параметры

Ниже приводится описание используемых параметров:

targetBuffer — объект буфера который будет скопирован в буфер.

targetStart — число, необязательный, по умолчанию: 0

sourceStart — число, необязательный, по умолчанию: 0

sourceEnd — число, необязательный, по умолчанию: buffer.length

Возвращаемое значение

Не возвращает значение. Копирует данные из области данного буфера в область целевого буфера, даже если область целевой памяти меньше исходной. Если это не задано явно, для параметров targetStart и sourceStart по умолчанию задается значение 0, а для sourceEnd — buffer.length.

Пример

После выполнения приведенной выше программы, мы получим следующий результат:

Выделение буфера

Синтаксис. Ниже приведен синтаксис метода для получения подбуфера буфера Node:

Параметры

Ниже приводится описание используемых параметров:

start — число, необязательный, по умолчанию: 0

end — число, необязательный, по умолчанию: buffer.length

Возвращаемое значение

Возвращает новый буфер, который ссылается на ту же область памяти, что и старый буфер, но ограниченную индексами start (по умолчанию 0) и end (по умолчанию buffer.length). Отрицательные индексы отсчитываются с конца буфера.

Пример

После выполнения приведенной выше программы, мы получим следующий результат:

Длина буфера

Синтаксис. Ниже приведен синтаксис метода для получения размера буфера Node в байтах:

Возвращаемое значение

Возвращает размер буфера в байтах.

Пример

После выполнения приведенной выше программы, мы получим следующий результат:

Описание методов

Ниже приведено описание методов, доступных в Node.js. Более подробную информацию вы можете найти в официальной документации.

Методы классов

Buffer.isEncoding(encoding) — Возвращает true, если кодировка является допустимым аргументом кодировки, иначе false.

Buffer.isBuffer(obj) — Проверяет является ли obj буфером.

Buffer.byteLength(string[, encoding]) — Возвращает фактическую длину строки в байтах. Кодировка по умолчанию — ‘utf8’. Это не то же самое, что и String.prototype.length, поскольку String.prototype.length возвращает количество символов в строке.

Buffer.concat(list[, totalLength]) — Возвращает буфер, который является результатом объединения всех буферов в списке.

Buffer.compare(buf1, buf2) — То же, что и buf1.compare (buf2). Используется для сортировки массивов буферов.

Источник: //www.tutorialspoint.com/

Редакция: Команда webformyself.

Хотите узнать, что необходимо для создания сайта?

Посмотрите видео и узнайте пошаговый план по созданию сайта с нуля!

Смотреть видео

Хотите узнать, что необходимо для создания сайта?

Посмотрите видео и узнайте пошаговый план по созданию сайта с нуля!

Смотреть

Метки:

Похожие статьи:

Комментарии Вконтакте: