美文网首页
二、node的缓冲区Buffer

二、node的缓冲区Buffer

作者: SherrinfordL | 来源:发表于2019-03-05 19:18 被阅读0次

Buffer.alloc(size[, fill[, encoding]]): 返回一个指定大小的 Buffer 实例,如果没有设置 fill,则默认填满 0
Buffer.from(array): 返回一个被 array 的值初始化的新的 Buffer 实例(传入的 array 的元素只能是数字,不然就会自动被 0 覆盖)

写入缓冲区

buf = Buffer.alloc(256);
len = buf.write("www.runoob.com");

console.log("写入字节数 : "+  len);
//$node main.js
//写入字节数 : 14

读取

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

console.log( buf.toString('ascii'));       // 输出: abcdefghijklmnopqrstuvwxyz
console.log( buf.toString('ascii',0,5));   // 输出: abcde
console.log( buf.toString('utf8',0,5));    // 输出: abcde
console.log( buf.toString(undefined,0,5)); // 使用 'utf8' 编码, 并输出: abcde

转换json对象

const buf = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5]);
const json = JSON.stringify(buf);

// 输出: {"type":"Buffer","data":[1,2,3,4,5]}
console.log(json);

const copy = JSON.parse(json, (key, value) => {
  return value && value.type === 'Buffer' ?
    Buffer.from(value.data) :
    value;
});

// 输出: <Buffer 01 02 03 04 05>
console.log(copy);

合并

var buffer1 = Buffer.from(('菜鸟教程'));
var buffer2 = Buffer.from(('www.runoob.com'));
var buffer3 = Buffer.concat([buffer1,buffer2]);
console.log("buffer3 内容: " + buffer3.toString());

比较

参数有三个返回值,result

var buffer1 = Buffer.from('ABC');
var buffer2 = Buffer.from('ABCD');
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 + "之后");
}
//ABC在ABCD之前

拷贝

var buf1 = Buffer.from('abcdefghijkl');
var buf2 = Buffer.from('RUNOOB');

//将 buf2 插入到 buf1 指定位置上
buf2.copy(buf1, 2);

console.log(buf1.toString());
//abRUNOOBijkl

裁剪

var buffer1 = Buffer.from('runoob');
// 剪切缓冲区
var buffer2 = buffer1.slice(0,2);
console.log("buffer2 content: " + buffer2.toString());
//输出buffer2 content: ru

长度

var buffer = Buffer.from('www.runoob.com');
//  缓冲区长度
console.log("buffer length: " + buffer.length);

相关文章

  • node中的Buffer

    Buffer是什么 buffer翻译的意思是缓冲区 在node中,Buffer是用于存储二进制数据的,在内存中新开...

  • 02node.js

    Node.js Buffer(缓冲区)01、创建 Buffer 类JavaScript 语言自身只有字符串数据类型...

  • 二、node的缓冲区Buffer

    Buffer.alloc(size[, fill[, encoding]]): 返回一个指定大小的 Buffer ...

  • 08 全局-Buffer

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

  • Day5 Node.js Buffer(缓冲区)

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

  • NODE 学习第三天

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

  • Node.js<三>

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

  • node.js(九)

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

  • NIO中Buffer缓冲区的核心要点

    一.buffer缓冲区核心要点 我们来看看Buffer缓冲区有什么值得我们注意的地方。 Buffer是缓冲区的抽象...

  • Node中的缓冲区(Buffer)

    Buffer初识 在引入TypedArray 之前,JavaScript 语言没有用于读取或操作二进制数据流的机制...

网友评论

      本文标题:二、node的缓冲区Buffer

      本文链接:https://www.haomeiwen.com/subject/ofoouqtx.html