我现在有一个byte数组。
byte[] block = new byte[1024];
现在我需要在这个数组中的不同位置放不同的数据类型。
1)比如要在block[1020]到block[1023]这四个byte的位置上放一个int类型的数据。
2)还要在block[0]到block[63]这64个byte的位置上放长度最大为32的String。
那要怎么操作啊?我一点头绪都没有。高手指点啊。

解决方案 »

  1.   

    方法有好几种吧,如果用结构的话方便点,但要注意内在对齐的问题。不用结构, 直接强制转换也行,但是麻烦点。比如你可以这样int *i= (int*)&block[1020];
    *i= 0xA0B0C0D0;但是如果是字符串, 就要注意越界的问题了。
      

  2.   

    byte数组当然只能放byte元素,楼上搞笑了这是java区。
      

  3.   

    赫赫,用位移阿。比如:byte[] block = new byte[1024];
    int i = 12345;block[1020] = (byte)(0f & i);
    block[1021] = (byte)(i>>4);对于string可以用string自己提供的getBytes函数。
      

  4.   

    说不可以的朋友显然没有理解LZ的意思。
    直接把string等类型给byte肯定是不行的,但是可以分段以byte类型放进去
      

  5.   

    汗, 没看到这是JAVA区 -_-#