如何从 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?
如何将 byte[] 转换为 bytebuffer 本机内存?
如何在 Kotlin 中将数据类转换为 ByteBuffer?