Node.js Buffer学习笔记
了解Buffer
在Node.js中,Buffer是一个用于处理二进制数据的类。它不仅可以用于处理网络流、文件系统操作等场景,还可以用于处理图片、视频等媒体数据。
Buffer对象类似于整个数组,但它被设计为用于存储原始二进制数据。 Buffer的大小是固定的,不能调整大小。
在Node.js v6.0之后,Buffer.alloc()函数被引入,用于直接创建已初始化为零的Buffer实例。这提高了应用程序的性能和安全性。
创建Buffer
可以使用多种方式来创建Buffer:
方法一:通过字符串创建Buffer
Copy Codeconst str = 'Hello, world!';
const buf1 = Buffer.from(str, 'utf8');
console.log(buf1);
输出结果:
Copy Code<Buffer 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21>
方法二:通过数组创建Buffer
Copy Codeconst arr = [0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x2c, 0x20, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x21];
const buf2 = Buffer.from(arr);
console.log(buf2);
输出结果:
Copy Code<Buffer 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21>
方法三:通过缓冲区创建Buffer
Copy Codeconst buf3 = Buffer.alloc(5);
console.log(buf3);
输出结果:
Copy Code<Buffer 00 00 00 00 00>
读写Buffer
可以使用多种方式来读取和写入Buffer:
读取Buffer
Copy Codeconst buf4 = Buffer.from('Hello, world!');
console.log(buf4.toString());
输出结果:
Copy CodeHello, world!
写入Buffer
Copy Codeconst buf5 = Buffer.alloc(10);
buf5.write('hello');
console.log(buf5);
输出结果:
Copy Code<Buffer 68 65 6c 6c 6f 00 00 00 00 00>
比较Buffer
可以使用buffer.compare()方法来比较两个Buffer对象。
Copy Codeconst buf6 = Buffer.from('ABC');
const buf7 = Buffer.from('BCD');
console.log(buf6.compare(buf7)); // -1
console.log(buf7.compare(buf6)); // 1
console.log(buf6.compare(buf6)); // 0
输出结果:
Copy Code-1
1
0
以上是Node.js Buffer学习笔记的内容,希望对你有所帮助。