如何从 ByteBuffer 转换为 Integer 和 String?

Posted

技术标签:

【中文标题】如何从 ByteBuffer 转换为 Integer 和 String?【英文标题】:How to convert from ByteBuffer to Integer and String? 【发布时间】:2011-09-13 00:53:15 【问题描述】:

我使用 ByteBuffer 的 putInt() 方法将 int 转换为字节数组。我该如何做相反的事情?那么将这些字节转换为 int 呢?

此外,我使用字符串的getBytes() 方法将字符串转换为字节数组。我如何反过来转换它? bytesArray.getString() 不返回可读字符串。我得到类似BF@DDAD

【问题讨论】:

【参考方案1】:

您可以使用ByteBuffer.getInt 方法,指定整数出现的偏移量,将一系列字节转换为整数。或者,如果您碰巧知道字节顺序,则可以使用按位运算符从 8 位八位字节显式重构 32 位整数。

要将字节数组转换为String,您可以使用String(byte[]) 构造函数从字节数组中构造一个新的String。例如:

byte[] bytes = /* ... get array of bytes ... */
String fromBytes = new String(bytes);

【讨论】:

请注意,在从原始字节创建 String 时,最好指定要使用的编码。

以上是关于如何从 ByteBuffer 转换为 Integer 和 String?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Java 中将 ByteBuffer 转换为 FileInputStream?

如何将 ByteBuffer 转换为 pdf

如何将 byte[] 转换为 bytebuffer 本机内存?

如何在 Kotlin 中将数据类转换为 ByteBuffer?

将 BufferedImage 转换为 ByteBuffer

将 ByteBuffer 的一部分转换回 String