From d1a0e1872c4dec20b6f92ed4f6c11b7465ee81d2 Mon Sep 17 00:00:00 2001 From: Coder <779247142@qq.com> Date: Mon, 17 Jul 2017 10:30:23 +0800 Subject: [PATCH] fix error about Buffer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关于Buffer.slice()的操作中 console.log() 结果存在错误。以及bin.copy()的错误。 --- index.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index f686952..8b52f3c 100644 --- a/index.html +++ b/index.html @@ -667,8 +667,9 @@

Buffer(数据块)

var bin = new Buffer([ 0x68, 0x65, 0x6c, 0x6c, 0x6f ]);
 var sub = bin.slice(2);
 
+console.log(bin); // => <Buffer 6c 6c 6f>
sub[0] = 0x65; -console.log(bin); // => <Buffer 68 65 65 6c 6f> +console.log(bin); // => <Buffer 65 6c 6f>

也因此,如果想要拷贝一份Buffer,得首先创建一个新的Buffer,并通过.copy方法把原Buffer中的数据复制过去。这个类似于申请一块新的内存,并把已有内存中的数据复制过去。以下是一个例子。

var bin = new Buffer([ 0x68, 0x65, 0x6c, 0x6c, 0x6f ]);
 var dup = new Buffer(bin.length);
@@ -676,7 +677,7 @@ 

Buffer(数据块)

bin.copy(dup); dup[0] = 0x48; console.log(bin); // => <Buffer 68 65 6c 6c 6f> -console.log(dup); // => <Buffer 48 65 65 6c 6f>
+console.log(dup); // => <Buffer 48 65 6c 6c 6f>

总之,Buffer将JS的数据处理能力从字符串扩展到了任意二进制数据。

Stream(数据流)