对数据解析这块很疑惑,收到的数据包应该是一种字节流的形式,Java如何判断它是字符串还是整数或是别的什么数据类型呢?

解决方案 »

  1.   

    一般都是BYTE[],我认为你和String,int的关系不大,都是2进制的数
      

  2.   

    如果另外一端是用c写的,比如发过来的是个struct结构体,如何解析出对应的每一个数据呢?如果读出来的是byte[],那么解析的过程全都得自己实现吗?感觉这也太复杂了,没有成型的解析方法供调用吗?
      

  3.   

    没有成型的方法,因为每个字节可能是char也可能是int,这需要你自己定义数据结构,否则谁知道啊
      

  4.   

    我的意思是说,比如知道byte[0]-byte[3]是一个整形,没有那种类似int getIntByByte( byte bt, int len)的方法吗?
      

  5.   

    这个还要函数作甚么?按照网络字节顺序int i=(int)bt[0]<<24|(int)bt[1]<<16|(int)bt[2]<<8|(int)bt[3];ok.
      

  6.   

    可以用NIO 的ByteBuffer包。
      

  7.   

    根据发送方的struct可以定出一个包有多少个byte从这边读出这些bytes。再按发送方的struct数据结构将byte转成int 或char .
      

  8.   

    呵呵,找到了。可以用DataInputStream,直接取出所需的整形变量