什么是Node.js中的缓冲区
纯粹的JavaScript对于Unicode编码的字符串处理得很好,但是它不能很好地处理二进制数据。当我们在浏览器级别上对数据进行操作时,这并不是个问题,但是在处理TCP流并在文件系统上执行读写操作时,必须处理纯二进制数据。为了满足这个需求,Node.js使用缓冲区(Buffer)。因此,在本文中,我们将了解Node.js中的缓冲区。
Node.js中的缓冲区: Node.js中的Buffer类用于执行原始二进制数据的操作。通常,缓冲区指的是内存中的特定内存位置。缓冲区和数组有一些相似之处,但区别在于数组可以是任何类型,并且可以调整大小。缓冲区只处理二进制数据,它不能调整大小。缓冲区中的每个整数表示一个字节。console.log()函数用于打印缓冲区实例。
在缓冲区上执行操作的方法:
编号 | 方法 | 描述 |
---|---|---|
1 | Buffer.alloc(size) | 创建一个缓冲区并分配给它大小。 |
2 | Buffer.from(initialization) | 使用给定的数据初始化缓冲区。 |
3 | Buffer.write(data) | 将数据写入缓冲区。 |
4 | toString() | 从缓冲区读取数据并返回。 |
5 | Buffer.isBuffer(object) | 检查对象是否为缓冲区。 |
6 | Buffer.length | 返回缓冲区的长度。 |
7 | Buffer.copy(buffer,subsection size) | 将数据从一个缓冲区复制到另一个缓冲区。 |
8 | Buffer.slice(start, end=buffer.length) | 返回存储在缓冲区中的数据的子部分。 |
9 | Buffer.concat([buffer,buffer]) | 将两个缓冲区连接起来。 |
文件名:index.js
// Different Method to create Buffer
const buffer1 = Buffer.alloc(100);
const buffer2 = new Buffer('GFG');
const buffer3 = Buffer.from([1, 2, 3, 4]);
// Writing data to Buffer
buffer1.write("Happy Learning");
// Reading data from Buffer
const a = buffer1.toString('utf-8');
console.log(a);
// Check object is buffer or not
console.log(Buffer.isBuffer(buffer1));
// Check length of Buffer
console.log(buffer1.length);
// Copy buffer
const bufferSrc = new Buffer('ABC');
const bufferDest = Buffer.alloc(3);
bufferSrc.copy(bufferDest);
const Data = bufferDest.toString('utf-8');
console.log(Data);
// Slicing data
const bufferOld = new Buffer('GeeksForGeeks');
const bufferNew = bufferOld.slice(0, 4);
console.log(bufferNew.toString());
// concatenate two buffer
const bufferOne = new Buffer('Happy Learning ');
const bufferTwo = new Buffer('With GFG');
const bufferThree = Buffer.concat([bufferOne, bufferTwo]);
console.log(bufferThree.toString());
使用以下命令来运行 index.js 文件:
node index.js
输出:
Happy Learning
true
100
ABC
Geek
Happy Learning With GFG
参考: https://nodejs.org/api/buffer.html