Buffer简单理解及常用方法介绍

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Buffer简单理解及常用方法介绍相关的知识,希望对你有一定的参考价值。

参考技术A javascript 中对数据处理都是以字符串的形式,而对于二进制数据就不便于处理,所以 Buffer 便是用于读取或操作二进制数据的对象。

通俗来说Buffer其实就是处理数据的方法,这点在官网文档里解释的很详细。
Buffer 是内存拷贝,而不是内存共享。

Buffer 占用内存被解释为一个数组,而不是字节数组。比如,new Uint32Array(new Buffer([1,2,3,4])) 创建了4个 Uint32Array,它的成员为 [1,2,3,4] ,而不是[0x1020304] 或 [0x4030201]。
注意:Node.js v0.8 只是简单的引用了array.buffer里的 buffer ,而不是克隆(cloning)。

介绍一个高效的方法,ArrayBuffer#slice() 拷贝了一份切片,而 Buffer#slice() 新建了一份。

类: Buffer
Buffer 类是全局变量类型,用来直接处理2进制数据。 它能够使用多种方式构建

Buffer.from(array) 返回一个新的 Buffer,其中包含提供的八位字节数组的副本。
Buffer.from(arrayBuffer[, byteOffset [, length]]) 返回一个新的 Buffer,它与给定的 ArrayBuffer 共享相同的已分配内存。
Buffer.from(buffer) 返回一个新的 Buffer,其中包含给定 Buffer 的内容的副本。
Buffer.from(string[, encoding]) 返回一个新的 Buffer,其中包含提供的字符串的副本。
Buffer.alloc(size[, fill[, encoding]]) 返回一个指定大小的新建的的已初始化的 Buffer。 此方法比 Buffer.allocUnsafe(size) 慢,但能确保新创建的 Buffer 实例永远不会包含可能敏感的旧数据。
Buffer.allocUnsafe(size) 和 Buffer.allocUnsafeSlow(size) 分别返回一个指定大小的新建的未初始化的 Buffer。 由于 Buffer 是未初始化的,因此分配的内存片段可能包含敏感的旧数据。

1.ascii——ASCI,仅适用于ASCII字符集。
2.utf8——UTF-8,这种可变宽编码适用于Unicode字符集的任何字符,它已经成了Web世界的首选编码,也是Node的默认编码类型。
3.base64——Base64,这种编码基于64个可打印ASCII字符来表示二进制数据,Base64通常用于在字符文档内嵌入可以被转化成字符串的二进制数据,在需要时又可以完整无损的转换回原来的二进制格式。

以上是关于Buffer简单理解及常用方法介绍的主要内容,如果未能解决你的问题,请参考以下文章

网络I/o编程模型5 Nio之buffer的操作和常用方法

js正则表达式常用函数方法及简单应用

ByteBuffer常用方法详解

[java初探05]__数组的简单认识及Arrays类的常用方法

kubernetes资源对象介绍及常用命令

ByteBuffer常用方法详解