什么是Node.js中的缓冲区

什么是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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程