Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过字节缓冲区清除NodeJs中的额外数据?_Javascript_Node.js - Fatal编程技术网

Javascript 如何通过字节缓冲区清除NodeJs中的额外数据?

Javascript 如何通过字节缓冲区清除NodeJs中的额外数据?,javascript,node.js,Javascript,Node.js,我很难理解为什么ByteBuffer没有记录它的长度。我只是想附加到bytebuffer中,并取回我放入其中的内容。相反,我会在最后得到随机垃圾,或者如果我压缩缓冲区,它会截断我的输入 以下是两者的一个示例: nodejs -e 'ByteBuffer=require("bytebuffer"); b=new ByteBuffer(); b.append("word"); b=b.clone(); b.printDebug()' ByteBufferNB(offset=4,markedOffse

我很难理解为什么ByteBuffer没有记录它的长度。我只是想附加到bytebuffer中,并取回我放入其中的内容。相反,我会在最后得到随机垃圾,或者如果我压缩缓冲区,它会截断我的输入

以下是两者的一个示例:

nodejs -e 'ByteBuffer=require("bytebuffer"); b=new ByteBuffer(); b.append("word"); b=b.clone(); b.printDebug()'
ByteBufferNB(offset=4,markedOffset=-1,limit=16,capacity=16)
-------------------------------------------------------------------
 77 6F 72 64<6B 14 00 00 00 00 00 00 00 00 00 00>  wordk...........


nodejs -e 'ByteBuffer=require("bytebuffer"); b=new ByteBuffer(); b.append("word"); b.compact(); b.printDebug()'
ByteBufferNB(offset=0,markedOffset=-1,limit=12,capacity=12)
-------------------------------------------------------------------
<6B 14 00 00 00 00 00 00 00 00 00 00>              k...........
有人知道如何将其包装起来,创建一个精确地包含放入其中的内容的缓冲区吗?不必手动设置长度。

我找到了一个解决方法:b=b.copy0,b.offset