Buffers (Буферы) — это экземпляры класса Buffer в Node.js. Буферы предназначены для обработки двоичных необработанных данных. Буферы выделяют необработанную память за пределами кучи V8. Класс буфера является глобальным классом, поэтому его можно использовать без импорта модуля буфера в приложение.
Создание буферов: Ниже приведены различные способы создания буферов в 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() принимает следующие параметры:
- строка: Он определяет строковые данные, которые должны быть записаны в буфер.
- смещение: Он указывает индекс, с которого буфер начинает запись. Его значение по умолчанию равно 0.
- длина: Он определяет количество байтов для записи. Его значение по умолчанию-buffer.length.
- кодирование: Он определяет механизм кодирования. Его значение по умолчанию- » utf-8’.
Пример: Создайте biffer.js файл, содержащий следующие коды.
// Write JavaScript code here
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 )
Баф.Метод toString() принимает следующие параметры:
- encoding (кодирование): Он определяет механизм кодирования. Его значение по умолчанию- » utf-8’.
- start (начало): Он указывает индекс для начала чтения. Его значение по умолчанию равно 0.
- end (конец): Он указывает индекс для завершения чтения. Его значение по умолчанию-полный буфер.
Пример 1: Создайте buffer.js файл, содержащий следующий код.
Пример 1: Создайте buffer.js файл, содержащий следующий код.
// Write JavaScript code here
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 файл, содержащий следующий код.
// Write JavaScript code here
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));
Выход: