gpt4 book ai didi

java - 从字节数组中的指定位置提取字节

转载 作者:行者123 更新时间:2023-12-02 06:30:29 24 4
gpt4 key购买 nike

你好,我是java中字节操作的新手。我已经有了具有流动格式的字节数组

1-> datapacketlength (length of name) (first byte)
2-> name (second byte + datapacket length)
3-> datapacketlength (length of datetime)
4-> current date and time

如何提取名称以及当前日期和时间。我应该使用 Arrays.copyOfRange() 方法吗?

问候

MCD

最佳答案

您可以使用ByteBuffer并使用当前的字节数组,然后使用它附带的方法来获取下一个float、int等(例如buffer.getInt和buffer.getFloat)。

当您使用我相信的 wrap 方法创建新的字节缓冲区时,您可以获取字节数组的一部分。可能性是无止境 :)。要按照您的要求获取字符串,您只需执行以下操作:

 byte[] name = new byte[nameLength];
buffer.get(name);
nameString = byteRangeToString(name);

其中 byteRangeToString 是一种返回传递给它的 byte[] 数据的新字符串表示形式的方法。

public String byteRangeToString(byte[] data)
{
try
{
return new String(data, "UTF-8");
}
catch (UnsupportedEncodingException e)
{
/* handle accordingly */
}
}

参见:http://developer.android.com/reference/java/nio/ByteBuffer.html

如果过度使用copyOfRange(),可能会遇到内存问题。

关于java - 从字节数组中的指定位置提取字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20101910/

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