NodeJS Buffer模块的一些常用方法

Node.js Buffer(缓冲区):专门存放二进制数据缓冲区

(1)Buffer与字符编码

创建Buffer对象: const buf = Buffer.from ( ‘runoob’, ‘ascii’ );
Node.js 目前支持的字符编码包括:
ascii - 仅支持 7 位 ASCII 数据。如果设置去掉高位的话,这种编码是非常快的。
utf8 - 多字节编码的 Unicode 字符。许多网页和其他文档格式都使用 UTF-8 。
utf16le - 2 或 4 个字节,小字节序编码的 Unicode 字符。支持代理对(U+10000 至 U+10FFFF)。
ucs2 - utf16le 的别名。
base64 - Base64 编码。
latin1 - 一种把 Buffer 编码成一字节编码的字符串的方式。
binary - latin1 的别名。
hex - 将每个字节编码为两个十六进制字符。

(2)写入缓存区语法:buf.write(string[, offset[, length]][, encoding]) 返回值实际写入的大小

参数描述如下:
string - 写入缓冲区的字符串。
offset - 缓冲区开始写入的索引值,默认为 0 。
length - 写入的字节数,默认为 buffer.length
encoding - 使用的编码。默认为 ‘utf8’ 。

(3)将Buffer转成JSON: buf.toJSON 或 JSON.stringify() 返回JSON对象

(4)缓冲区合并:Buffer.concat(list[, totalLength]) 返回一个或者多个成员合并的新Buffer对象

参数描述如下:
list - 用于合并的 Buffer 对象数组列表。
totalLength - 指定合并后Buffer对象的总长度。

(5)缓冲区比较:buf.compare(otherBuffer); 返回一个数字,表示 buf 在 otherBuffer 之前,之后或相同。

参数描述如下:
otherBuffer - 与 buf 对象比较的另外一个 Buffer 对象。

(6)拷贝缓冲区:buf.copy(targetBuffer[, targetStart[, sourceStart[, sourceEnd]]])

参数描述如下:
targetBuffer - 要拷贝的 Buffer 对象。
targetStart - 数字, 可选, 默认: 0
sourceStart - 数字, 可选, 默认: 0
sourceEnd - 数字, 可选, 默认: buffer.length
实例:
var buf1 = Buffer.from(‘abcdefghijkl’);
var buf2 = Buffer.from(‘RUNOOB’);
//将 buf2 插入到 buf1 指定位置上
buf2.copy(buf1, 2);
console.log(buf1.toString());

(7)缓冲区裁剪:buf.slice([start[, end]]) 返回值:返回一个新的缓冲区

参数描述如下:
start: 数字,可选默认是0
end: 数字,可选 默认是buffer.length
实例:
var buf = Buffer.from(‘abcdefghi’);
var buf1 = buf.slice(2,5);
console.log(‘缓冲区裁剪’ + buf1.toString());

(8)缓冲区长度:buf.length

实例:
var length = buf.length;
console.log(‘缓冲区长度’ + length);

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值