Kotlin中操作二进制数据

内容目录

因为自己写的kwsify是通过过纯文本json发送数据帧的如果想发送二进制数据的话就没办法了于是我就了解了一下kotlin中操作二进制数据的方法下面就是具体思路

  1. 首先需要编码/解码二进制需要一个数据载体这个载体就是ByteBuffer(当然也可以是DataOutputStream)这里为了更清楚的操作二进制我就使用ByteBuffer来操作
  2. 还需要一个数据类来存放解码后/编码前的人类可读数据
data class OPCodePacket(
    val op: Int,
    val body: String
) {
    fun toByteArray(): ByteArray {
        val bodySize = body.toByteArray().size
        val body = body.toByteArray()
        val totalLength = 4 + 4 + bodySize
        val buffer = ByteBuffer.allocate(totalLength).apply {
            putInt(op)
            putInt(bodySize)
            put(body)
        }
        return buffer.array()
    }

    companion object {
        fun fromByteArray(buffer: ByteBuffer): OPCodePacket {
            buffer.flip()
            val op = buffer.int
            val bodySize = buffer.int
            val body = ByteArray(bodySize).apply {
                buffer.get(this)
            }
            return OPCodePacket(op, String(body))
        }
    }
}
温馨提示:

1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:[email protected],工作室将第一时间处理!

2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。

3.所有资源仅限于参考和学习,版权归原作者所有。

Kotlin默认

Kotlin中解析QQ音乐和网易云音乐歌词的工具类

2025-1-2 15:33:43

默认

Kotlin基础教程

2025-1-15 20:20:23

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索