我是 Node.js 新手,
我正在阅读 Node.js 缓冲区。
我偶然发现了 buffer.copy 方法。
编写了如下代码,
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 个字节包含半随机数据。
记录here :
Passing a number as the first argument to
Buffer()
(e.g.new Buffer(10)
), allocates a newBuffer
object of the specified size. The memory allocated for suchBuffer
instances is not initialized and can contain sensitive data.
关于javascript - 为什么缓冲区复制会打印一些垃圾值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40258524/