四:处理二进制的Buffer类

  1. 定义:
    JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。
    但在处理像TCP流或文件流时,必须使用到二进制数据。因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。

  2. 创建实例

buf = Buffer.alloc(256);
// 创建一个包含 [0x1, 0x2, 0x3] 的 Buffer。
const buf4 = Buffer.from([1, 2, 3]);

// 创建一个包含 UTF-8 字节 [0x74, 0xc3, 0xa9, 0x73, 0x74] 的 Buffer。
const buf5 = Buffer.from('tést');

// 创建一个包含 Latin-1 字节 [0x74, 0xe9, 0x73, 0x74] 的 Buffer。
const buf6 = Buffer.from('tést', 'latin1');

  1. 写入缓存
buf = Buffer.alloc(256);
len = buf.write("www.runoob.com");
  1. 缓存区读取
buf.toString([encoding[, start[, end]]])
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
  1. Buffer的数据传换
//专程json
buf.toJSON()
  1. 合并缓存
var buffer1 = Buffer.from(('菜鸟教程'));
var buffer2 = Buffer.from(('www.runoob.com'));
var buffer3 = Buffer.concat([buffer1,buffer2]);
console.log("buffer3 内容: " + buffer3.toString());

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一次的怦然心动,发生在刚上大学的时候。那时候,我刚刚从封闭学校里走出来,第一次需要自己处理事情,总觉得生活不如人...
    烟雨平生若归处阅读 180评论 0 0
  • 《北风行》 李白 烛龙栖寒门,光曜犹旦开。 日月照之何不及此?惟有北风号怒天上来。 燕山雪花大如席,片片吹落轩辕台...
    零零候鸟阅读 302评论 0 0
  • 现在一直延续一个习惯,就是凡事代码中没有用到的方法,一般都会去掉(特别特殊情况例外), 比如:在appdelage...
    张付东阅读 3,174评论 0 4
  • 你不会知道哪一朵花会开的很久 就像你不知道有谁能陪你走到最后一样 曾经的海誓山盟 曾经的许诺陪伴 包括曾经说的我爱...
    清风浅微凉阅读 152评论 0 0
  • 男儿正是争功时,又岂羡恩爱情仇,谋亦远,思亦重,得大势,去弊病,九龙身居闺苑里。何时谋他城,仰天门。志存远,思存远...
    墨上僧阅读 172评论 0 0