zoukankan      html  css  js  c++  java
  • 读取 java.nio.ByteBuffer 中的字符串(String) 写入方式flash.utils.ByteArray.writeUTF

    通过研究ByteArray的写入格式以及方法说明,可以发现writeUTF是先使用2位写入字符串的长度,然后在其后写入字符串编码。

     ByteArray.writeUTF

    flash.utils.ByteArray.writeUTF(value:String):void 

    UTF-8 字符串写入字节流。先写入以字节表示的 UTF-8 字符串长度(作为 16 位整数),然后写入表示字符串字符的字节。

    那么在java后端就可以根据规则读取写入的字符串了。 

    public static String getString(ByteBuffer packDataBuff)
    {
    if (packDataBuff.remaining() <= 0)
    return "";
    byte[] lenb = new byte[2];
    lenb[1] = packDataBuff.get();
    lenb[0] = packDataBuff.get();
    int len = Integer.parseInt(Util.bytes2HexString(lenb), 16);
    byte[] d = new byte[len];
    packDataBuff.get(d, 0, len);
    return new String(d, Charset.forName("UTF-8"));
    }

     

    public static String bytes2HexString(byte[] b)
    {
    String ret = "";
    for (int i = 0; i < b.length; i++)
    {
    String hex = Integer.toHexString(b[i] & 0xFF);
    if (hex.length() == 1)
    {
    hex = '0' + hex;
    }
    ret += hex;
    }
    return ret;
    }
  • 相关阅读:
    那些好的句子
    ❤️博客使用说明-飞沙
    求n以内,除5的倍数的和
    C# 枚举
    2021年bilibili程序员节日
    MT管理器使用技巧
    腾讯找人工客服
    校报白皮书
    C语言教程(下)
    svn版本控制
  • 原文地址:https://www.cnblogs.com/yelaiju/p/6003920.html
Copyright © 2011-2022 走看看