Рубрики

Node.js | Буферы

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

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

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

    Синтаксис:

    var ubuf = new Buffer(5);

    Приведенный выше синтаксис используется для создания неинициированного буфера из 5 октетов.

  • Создать буфер из массива: он создает буфер из данного массива.

    Синтаксис:

    var abuf = new Buffer([16, 32, 48, 64]);

    Приведенный выше синтаксис используется для создания буфера из данного массива.

  • Создать буфер из строки: он создает буфер из заданной строки с необязательной кодировкой.

    Синтаксис:

    var sbuf = new Buffer("GeeksforGeeks", "ascii");

    Приведенный выше синтаксис используется для создания буфера из строки, и тип кодировки также может быть указан по желанию.

Запись в буферы в Node.js: метод buf.write () используется для записи данных в буфер узла.

Синтаксис:

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

Метод buf.write () используется для возврата количества октетов, в которые записана строка. Если в буфере недостаточно места для размещения всей строки, он запишет часть строки.
Метод buf.write () принимает следующие параметры:

  • string: указывает строковые данные, которые должны быть записаны в буфер.
  • смещение: указывает индекс, с которого буфер начинает запись. Его значение по умолчанию равно 0.
  • длина: определяет количество байтов для записи. Значением по умолчанию является buffer.length.
  • кодировка: определяет механизм кодирования. Значение по умолчанию — utf-8.

Пример: создайте файл biffer.js, содержащий следующие коды.

// Написать код JavaScript здесь

cbuf = new Buffer(256);

bufferlen = cbuf.write("Learn Programming with GeeksforGeeks!!!");

console.log("No. of Octets in which string is written : "+  bufferlen);

Выход:

Чтение из буфера: метод buf.toString () используется для чтения данных из буфера узла.
Синтаксис:

buf.toString( encoding, start, end )

Метод buf.toString () принимает следующие параметры:

  • кодировка: определяет механизм кодирования. По умолчанию используется значение utf-8.
  • start: указывает индекс для начала чтения. Его значение по умолчанию равно 0.
  • end: указывает индекс для окончания чтения. Его значение по умолчанию — полный буфер.

Пример 1. Создайте файл buffer.js, содержащий следующий код.

// Написать код JavaScript здесь

rbuf = new Buffer(26); 

var j; 

  

for (var i = 65, j = 0; i < 90, j < 26; i++, j++) {  

    rbuf[j] = i ;  

}  

  

console.log( rbuf.toString('ascii'));  

Выход:

Пример 2: чтение данных из буфера Node.js с указанием начальной и конечной точек чтения. Создайте файл buffer.js, содержащий следующий код.

// Написать код JavaScript здесь

rbuf = new Buffer(26);  

var j;

  

for (var i = 65, j = 0; i < 90, j < 26; i++, j++) {  

    rbuf[j] = i ;  

}

  

console.log( rbuf.toString('utf-8', 3, 9));  

Выход:

Рекомендуемые посты:

Node.js | Буферы

0.00 (0%) 0 votes