Node.js Buffer的简单使用

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 - 将每个字节编码为两个十六进制字符。

写入Buffer

新建test.js

// 创建一个 Buffer。

const buf = Buffer.alloc(256);

var len = buf.write("www.runoob.com");

console.log("写入字节数 : "+  len);

执行以上代码,在命令行中输入:

node test.js

输出结果为:

写入字节数 : 14

Buffer合并

新建concat.js,内容如下:

var buffer1 = Buffer.from(('哈哈'));
var buffer2 = Buffer.from(('www.baidu.com'));
var buffer3 = Buffer.concat([buffer1,buffer2]);
console.log("buffer3的内容: " + buffer3.toString());

运行concat.js,输出结果如下:

buffer3的内容: 哈哈www.baidu.com

Buffer比较

新建compare.js,内容如下:

var buffer1 = Buffer.from('ab');
var buffer2 = Buffer.from('efg');
var result = buffer1.compare(buffer2);

if(result < 0) {
   console.log(buffer1 + " 在 " + buffer2 + "之前");
}else if(result == 0){
   console.log(buffer1 + " 与 " + buffer2 + "相同");
}else {
   console.log(buffer1 + " 在 " + buffer2 + "之后");
}

运行compare.js,输出结果如下

ab 在 efg之前

Buffer拷贝

新建copy.js,内容如下:

var buf1 = Buffer.from('abdxxatytuyjkyl');

var buf2 = Buffer.from('UUUUZZ');

//将 buf2 插入到 buf1 角标为2的位置上
buf2.copy(buf1, 2);

console.log(buf1.toString());

运行copy.js,输出结果如下

abUUUUZZtuyjkyl

从Buffer读取数据

新建read.js,内容如下:

buf = Buffer.alloc(26);
for (var i = 0 ; i < 26 ; i++) {
  buf[i] = i + 97;
}

console.log( buf.toString('ascii'));       //使用 'ascii' 编码
console.log( buf.toString('ascii',0,5));   // 使用 'ascii' 编码
console.log( buf.toString('utf8',0,5));    // 使用 'utf8' 编码
console.log( buf.toString(undefined,0,5)); // 使用 'utf8' 编码
console.log( buf.toString('base64',0,5)); // 使用 'base64' 编码

运行read.js,输出结果为:

abcdefghijklmnopqrstuvwxyz
abcde
abcde
abcde

YWJjZGU=

Buffer裁剪

新建slice.js,内容如下:

var buffer1 = Buffer.from('12saghhz');
// 剪切缓冲区
var buffer2 = buffer1.slice(0,5);

console.log("buffer2的内容: " + buffer2.toString());

运行slice.js,结果如下:

buffer2的内容: 12sag

猜你喜欢

转载自blog.csdn.net/luhuiwan1314/article/details/80805469