gpt4 book ai didi

java - ByteBuffer.wrap 出乎意料地出来了

转载 作者:行者123 更新时间:2023-11-29 20:10:33 26 4
gpt4 key购买 nike

我用ByteArray新建了一个字符串,结果出乎意料。这是我的代码

void foo(byte[] data, ...)
{
ByteBuffer byteBuf = ByteBuffer.wrap(data, 0, 15);
String msg = new String(byteBuf.array());
Log.i("FOO", String.format("ByteArraySize=%d\t\tMsgLen=%d,%d", data.length, byteBuf.array().length, msg.length()));
}

字节数组的长度是518400。但是日志信息显示:

ByteArraySize=518400 MsgLen=518400,518400

而不是

ByteArraySize=518400 MsgLen=15,15

怎么了?

最佳答案

这是预期的结果。

根据 ByteBuffer.wrap() 中的 JavaDoc:

Wraps a byte array into a buffer.

The new buffer will be backed by the given byte array; that is, modifications to the buffer will cause the array to be modified and vice versa.

ByteBuffer.array():

Returns the byte array that backs this buffer (optional operation).

Modifications to this buffer's content will cause the returned array's content to be modified, and vice versa.

这意味着 ByteBuffer.array() 将返回您用 ByteBuffer.wrap() 包装的相同数组。

关于java - ByteBuffer.wrap 出乎意料地出来了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35032252/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com