Buffer
JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。但在处理像TCP流或文件流时,必须使用到二进制数据。因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。
Buffer的结构和数组很像,操作的方法也和数组类似
- 数组中不能存储二进制的文件,而buffer就是专门用来存储二进制数据
- 使用buffer不需要引入模块,直接使用即可
- 在buffer中存储的都是二进制数据,但是在显示时都是以16进制的形式显示
- buffer中每一个元素的范围是从$00 - ff$ ,$0 - 255$
var str = "Hello 尚硅谷"; |
创建指定大小Buffer
Buffer的大小一旦确定,则不能修改,Buffer实际上是对底层内存的直接操作
//创建一个10个字节的buffer |
alloc()与allocUnsafe()区别
alloc
创建指定空间的内存,并将当前空间里的数据清空allocUnsafe
分配了空间,不会清空数据。(可能会包括之前被使用过的数据)
总结
- Buffer.from(str) 将一个字符串转换为buffer
- Buffer.alloc(size) 创建一个指定大小的Buffer
- Buffer.alloUnsafe(size) 创建一个指定大小的Buffer,但是可能包含敏感数据
- buf.toString() 将缓冲区中的数据转换为字符串