java - 访问字节数组中的前两个字节
问题描述
我有一个 ByteArray 类型的变量:
val byteArray: ByteArray?
我目前正在访问它的第一个字节,索引如下:byteArray[0]。我希望能够得到这个字节数组的前两个字节。我应该获取字节 0 和 1 然后追加,还是可以以某种方式执行 byteArray[0:1]?我对 Java 和 Kotlin 非常陌生,任何指导都值得赞赏。
我需要能够获得前两个字节,这样我才能获得 0 到 16 位并将其转换为整数。我用它来将字节转换为二进制字符串:
`String.format("%8s", Integer.toBinaryString(inByte & 0xFF)).replace(' ', '0');`
解决方案
如果您想要前两个字节的整数,只需使用 a ByteBuffer
:
// x is of type Short
val x = ByteBuffer.wrap(byteArray).short
这只会以大端顺序读取数组的前两个字节(您可以使用 更改它order
),或者如果数组中的字节少于 2 个则抛出异常。
推荐阅读
- java - 无法在java(客户端)的套接字上正确写入数据(类)并在c ++(服务器)上读取它
- asp.net - azure cli 中带有 json 文件的 azure appsettings
- xcode - Xcode 11 b5:首次启动错误消息 - 我应该担心吗?
- android - 从 Facebook 应用拦截链接以打开我的 Android 应用
- git - 防止 Jenkins 在提交时自动构建
- r - 如何将列表的所有对象应用于改变 dplyr tibble 的函数?
- javascript - 如何从js接收来自jsp的参数?
- apple-sign-in - ASAuthorizationController 因现有设置流程而失败
- rest - 如何使用带有邮递员的 REST API 获取 HP ALM 14 登录身份验证令牌
- javascript - 从 xml 字符串创建一个 html 表