node.js之Buffer

1.Buffer.byteLength()

返回一个字符串的实际字节长度。 这与 String.prototype.length不同,因为那返回字符串的字符数。

/* 返回一个字符串的实际字节长度 */
let str1 = "hello world";
let str2 = "中国";
console.log(Buffer.byteLength(str1)); // 11
console.log(Buffer.byteLength(str2)); // 6

2.Buffer.from(array)

Buffer.from(array): 返回一个被 array 的值初始化的新的 Buffer 实例(传入的 array 的元素只能是数字,不然就会自动被 0 覆盖)

Buffer.from(arrayBuffer[, byteOffset[, length]]): 返回一个新建的与给定的 ArrayBuffer 共享同一内存的 Buffer。

Buffer.from(buffer): 复制传入的 Buffer 实例的数据,并返回一个新的 Buffer 实例

Buffer.from(string[, encoding]): 返回一个被 string 的值初始化的新的 Buffer 实例

console.log(Buffer.from([1, 2, 3]));  // <Buffer 01 02 03>
let buf1 = Buffer.from("hello world"); // <Buffer 68 65 6c 6c 6f 20 77 6f 72 6c 64>

3.Buffer.isBuffer(obj)

如果 obj 是一个 Buffer 则返回 true ,否则返回 false

console.log(Buffer.isBuffer({ 'a': 1 }));              // false
console.log(Buffer.isBuffer(Buffer.from([1, 2, 3])));  // true

4.Buffer.concat(obj)

合并buf成为新的字符串

let str1 = "hello world";
let str2 = "中国";
let buf1 = Buffer.from(str1); // <Buffer 68 65 6c 6c 6f 20 77 6f 72 6c 64>
let buf2 = Buffer.from(str2);
let buf3 = Buffer.concat([buf1,buf2]);
console.log(buf3.toString()); // hello world中国

5.buf.fill(str,start,end)

str为替换的字符串,start为替换开始索引(包含),end为替换结束索引(不包含)

let buf1 = Buffer.from("hello world");
let newBuf = buf1.fill("*",2,5);
console.log(newBuf.toString()); // he*** world

常用属性

  • buf.length 长度
  • buf.toString() 转为字符串
  • buf.equals() 判断是否相等
  • buf.fill() 替换
  • buf.indexOf() 是否包含,如果包含返回位置值,不包含返回-1
const buf = Buffer.from('hello world');
const buf2 = Buffer.from('hello world!');

console.log(buf.length);   // 15
console.log(buf.toString());   // hello world
console.log(buf.fill(10, 2, 6));  // <Buffer 68 65 0a 0a 0a 0a 77 6f 72 6c 64>   这里从第3个到第6个都被替换成了0a,a就是16进制的数字10
console.log(buf.equals(buf2));  // false
console.log(buf.indexOf('h'));  // 0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值