我是node.js新手,
我正在阅读Node.js Buffers.
我偶然发现了缓冲区。复制方法。
写了如下代码,
var bufferOne = new Buffer("This is China");
var bufferTwo = new Buffer(20),
startTarget = 0,
sourceStart = 8,
sourceEnd = 0;
var bufferLength = bufferOne.length;
sourceEnd = bufferLength;
console.log("Buffer length "+bufferLength);
bufferOne.copy(bufferTwo,startTarget,sourceStart,sourceEnd);
console.log("Buffer1 "+bufferOne.toString());
console.log("Buffer2 "+bufferTwo.toString());
输出如下,
Buffer length 13
Buffer1 This is China
Buffer2 China
但有时它也会在"China"后面打印垃圾输出,如下所示,
Buffer length 13
Buffer1 This is China
Buffer2 China���*�
有时Buffer length 13
Buffer1 This is China
Buffer2 China���
谁能告诉我这是怎么回事?
bufferTwo
的长度是20,但是您只复制了13个字节。其余7字节包含半随机数据。
记录:
将一个数字作为第一个参数传递给
Buffer()
(例如new Buffer(10)
),分配一个指定大小的新Buffer
对象。分配给Buffer
实例的内存是未初始化的,可以包含敏感数据。