Что такое буфер Node.js (буфер)?

В памяти компьютера буфер (Buffer) представляет собой непрерывное пространство памяти для временного хранения данных. Буферы могут хранить различные типы данных, такие как строки, изображения, аудио и т. д. В Node.js Buffer — это глобальный объект для работы с двоичными данными.

создать буфер

В Node.js буферы можно создавать с помощью:

1. Создайте пустой буфер с размером

const buf = Buffer.alloc(size);

Это создаст буфер указанного размера и инициализирует все байты равными 0.

2. Создайте буфер, используя массив

const buf = Buffer.from(array);

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

3. Создайте буфер со строкой

const buf = Buffer.from(string, encoding);

Это создаст буфер из заданной строки и кодировки.

4. Создать неинициализированный буфер указанного размера

const buf = Buffer.allocUnsafe(size);

Это создаст буфер указанного размера, но не инициализирует буфер до 0. Если буфер не заполнен, он может содержать конфиденциальные данные.

Преобразование буфера в строку

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

Преобразовать буфер в строку

buf.toString([encoding[, start[, end]]])

Этот метод преобразует данные в буфере в строку, необязательный параметр encoding указывает кодировку символов, по умолчанию используется UTF-8. Начальный и конечный параметры определяют диапазон байтов для преобразования.

преобразовать строку в буфер

Buffer.from(string[, encoding])

Этот метод преобразует заданную строку в буфер, необязательный параметр encoding указывает кодировку символов, по умолчанию используется UTF-8.

Общие операции с буферами

буфер записи

buf.write(string[, offset[, length]][, encoding])

Этот метод записывает строку в буфер, необязательный параметр offset указывает позицию начала записи, по умолчанию 0. Параметр длины указывает количество байтов для записи и по умолчанию равно оставшемуся пространству буфера. Параметр encoding указывает кодировку символов, по умолчанию это UTF-8.

читать данные из буфера

buf.slice([start[, end]])

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

буферное слияние

Buffer.concat(list[, totalLength])

Этот метод объединяет массив, содержащий несколько буферов, в один буфер. Необязательный параметр totalLength указывает общее количество байтов объединенного буфера.

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

buf.compare(otherBuffer)

Этот метод используется для сравнения содержимого двух буферов и возвращает число, представляющее результат сравнения.

Сценарии применения буфера

В Node.js буферы обычно используются для обработки двоичных данных, таких как чтение и запись файлов, обработка сетевых данных и т. д. Вот несколько распространенных сценариев применения:

  • Чтение и запись файлов: используйте буфер для одновременного чтения или записи большого объема содержимого файла, что повышает эффективность.
  • Передача сетевых данных: при сетевой связи данные обычно передаются в двоичной форме, и буфер можно использовать для удобной обработки и анализа сетевых данных.
  • Обработка изображений и аудио. Данные изображений и аудио хранятся в двоичной форме, которую можно считывать, обрабатывать и преобразовывать с помощью буферов.

Подведем итог

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

Supongo que te gusta

Origin blog.csdn.net/weixin_43025343/article/details/131894924
Recomendado
Clasificación