Node.js Buffer(缓冲区) – 创建,写入和读取
Node.js缓冲区
Node.js缓冲区– Node.js缓冲区是一个类,可帮助处理和使用八位位组流。在处理TCP数据流和文件系统操作时,通常会出现八位字节流。
分配给缓冲区的原始内存在Node.js V8堆内存之外。
在本教程中,我们将学习如何
创建缓冲区
将数据写入缓冲区
从缓冲区读取数据。
Node.js –创建缓冲区
在Node.js中创建缓冲区的方法有很多种。我们将一个一个地研究它们。
指定长度的缓冲区
要创建指定长度的缓冲区,请使用Buffer。allocUnsafe(int)方法。
语法
Buffer.allocUnsafe(bufferLength); |
const buf1 = Buffer.allocUnsafe(10);
bufferLength是一个整数,指定要创建的缓冲区的长度。
创建的缓冲区未初始化,这意味着它可以包含垃圾值。您可以使用fill()或write()方法覆盖垃圾值。
指定长度的零填充缓冲区
若要创建指定长度的零填充缓冲区,请使用Buffer.alloc(int)方法。
语法
Buffer.alloc(bufferLength);
const buf1 = Buffer.alloc(10);
bufferLength是一个整数,指定要创建的缓冲区的长度。缓冲区包含用零填充的所有内存位置。
Buffer.alloc()比 Buffer.allocUnsafe()慢。
指定长度的缓冲区,填充有指定值
若要创建指定长度并填充有指定值的缓冲区,请使用Buffer.alloc(int,int)方法。
语法
Buffer.alloc(bufferLength, value);
const buf1 = Buffer.allocUnsafe(10, 3);
bufferLength是一个整数,指定要创建的缓冲区的长度。缓冲区包含用value填充的所有内存位置。
Node.js –写入缓冲区
Buffer类有很多方法可以将不同格式的数据写入缓冲区。在本节中,我们将学习编写一个字符串以缓冲。
若要将字符串写入缓冲区,请使用Buffer.write方法。
语法
Buffer.write(string[, offset[, length]][, encoding]);
const buf1 = Buffer.allocUnsafe(100); const len = buf1.write('welcomeuser',2,5,'utf8');
从offset开始的字符串,按长度提供的字符数将以指定的编码格式写入缓冲区。
write()方法返回写入缓冲区的字节数。
Node.js – 从缓冲区读取
要从缓冲区读取字节,请使用Buffer.values方法。
语法
Buffer.values();
创建并返回buf1值(字节)的迭代器。在for..of语句中使用Buffer时,将自动调用此函数。
const buf1 = Buffer.allocUnsafe(11); const len = buf1.write('welcomeuser'); for(const byt of buf1.values()){ console.log(byt); }
输出结果
$ node read-buffer.js 119 101 108 99 111 109 101 117 115 101 114
结论:
在本Node.js教程– Node.js缓冲区中,我们学习了如何在Node.js中创建,写入和读取缓冲区。在接下来的教程中,我们将学习一些关于缓冲区的有趣操作。