Node.js Buffer(缓冲区)
Node.js Buffer(缓冲区)
JavaScript 语言自身只有字符串数据类型,缓冲没有二进制数据类型。缓冲

但在处理像TCP流或文件流时,缓冲必须使用到二进制数据。缓冲因此在 Node.js中,缓冲定义了一个 Buffer 类,缓冲该类用来创建一个专门存放二进制数据的缓冲缓存区。
在 Node.js 中,缓冲Buffer 类是缓冲随 Node 内核一起发布的核心库。Buffer 库为 Node.js 带来了一种存储原始数据的缓冲方法,可以让 Node.js 处理二进制数据,缓冲每当需要在 Node.js 中处理I/O操作中移动的缓冲数据时,就有可能使用 Buffer 库。缓冲原始数据存储在 Buffer 类的缓冲实例中。一个 Buffer 类似于一个整数数组,缓冲但它对应于 V8 堆内存之外的一块原始内存。
。。。
创建 Buffer 类
Node Buffer 类可以通过多种方式来创建。
方法 1
创建长度为 10 字节的 Buffer 实例:
var buf = new Buffer(10);
方法 2
通过给定的数组创建 Buffer 实例:
var buf = new Buffer([10, 20, 30, 40, 50]);
方法 3
通过一个字符串来创建 Buffer 实例:
http://www.iis7.com/a/lm/gjcpmcx/
var buf = new Buffer("www.123456789.cn", "utf-8");
utf-8 是默认的编码方式,此外它同样支持以下编码:"ascii", "utf8", "utf16le", "ucs2", "base64" 和 "hex"。
。WordPress模板。。
写入缓冲区
语法
写入 Node 缓冲区的语法如下所示:
buf.write(string[, offset[, length]][, encoding])
参数
参数描述如下:
-string - 写入缓冲区的字符串。
-offset - 缓冲区开始写入的索引值,默认为 0 。
-length - 写入的字节数,默认为 buffer.length
-encoding - 使用的编码。默认为 utf8 。
返回值
返回实际写入的大小。如果 buffer 空间不足, 则只会写入部分字符串。
。。。
从缓冲区读取数据
语法
读取 Node 缓冲区数据的语法如下所示:
buf.toString([encoding[,start[,end]]])
参数
参数描述如下:
-encoding - 使用的编码。默认为 utf8 。
-start - 指定开始读取的索引位置,默认为 0。
-end - 结束位置,默认为缓冲区的末尾。
返回值
解码缓冲区数据并使用指定的编码返回字符串。
。源码下载。。
将 Buffer 转换为 JSON 对象
语法
将 Node Buffer 转换为 JSON 对象的函数语法格式如右:buf.toJSON()
返回值
返回 JSON 对象。
。。。
缓冲区合并
语法
Node 缓冲区合并的语法如下所示:
Buffer.concat(list[, totalLength])
参数
参数描述如下:
-list - 用于合并的 Buffer 对象数组列表。
-totalLength - 指定合并后Buffer对象的总长度。
返回值
返回一个多个成员合并的新 Buffer 对象。
。。。
缓冲区比较
语法
Node Buffer 比较的函数语法如下所示, 该方法在 Node.js v0.12.2 版本引入:
buf.compare(otherBuffer);
参数
参数描述如下:
otherBuffer - 与 buf 对象比较的另外一个 Buffer 对象。
返回值
返回一个数字,表示 buf 在 otherBuffer 之前,之后或相同。
。。。
拷贝缓冲区
语法
Node 缓冲区拷贝语法如下所示:
buf.copy(target[, targetStart[, sourceStart[, sourceEnd]]])
参数
参数描述如下:
-targetBuffer - 要拷贝的 Buffer 对象。
-targetStart - 数字, 可选, 默认: 0
-sourceStart - 数字, 可选, 默认: 0
-sourceEnd - 数字, 可选, 默认: buffer.length
返回值
没有返回值。
。。。
缓冲区裁剪
Node 缓冲区裁剪语法如下所示:
buf.slice([start[, end]])
参数
参数描述如下:
-start - 数字, 可选, 默认: 0
-end - 数字, 可选, 默认: buffer.length
返回值
返回一个新的服务器托管缓冲区,它和旧缓冲区指向同一块内存,但是从索引 start 到 end 的位置剪切。
。。。
缓冲区长度
语法
Node 缓冲区长度计算语法如下所示:
buf.length;
返回值
返回 Buffer 对象所占据的内存长度。
相关文章
GTX6501GD5显卡的性能评测(一款老牌显卡的强势回归)
摘要:作为一款旧款显卡,GTX6501GD5仍然拥有着不可忽视的性能。它虽然无法与目前市面上的新一代显卡相比,但在一些低负荷的应用场景中,依然能够提供出色的表现。本文将对GTX6501G...2025-11-05
就应用程序和操作系统的新漏洞和漏洞利用技术而言,2024年第二季度可谓是多事之秋。通过易受攻击的驱动程序进行攻击已成为操作系统中权限提升的一种通用手段。这种攻击值得注意的地方在于,漏洞不一定是最新的,2025-11-05
作为全球工业发展的“风向标”,2025中国国际工业博览会集中展示了全球制造业的高质量制造实力和创新能力。在30万平方米的展区内,智能制造的先进场景令人目不暇接:灵活自如的超精度机械臂、更高集成度的各类2025-11-05- 复制g:alternateSearchPath=sfr:../source,sfr:../src,sfr:../include,sfr:../inc 1.2025-11-05
电脑出现bash错误的解决方法(快速修复电脑中的bash错误)
摘要:在使用电脑的过程中,有时候我们可能会遇到bash错误的问题。bash是一种常用的Shell程序,但它也可能会出现一些错误,导致我们无法正常使用电脑。本文将介绍一些常见的bash错误...2025-11-05- MySQL作为一种关系型数据库管理系统,被广泛应用于各种规模的应用中。然而,在处理大量数据和高并发请求的情况下,MySQL的性能可能会受到限制。为了提高MySQL性能,合理设计缓存策略至关重要。查询缓2025-11-05

最新评论