java 读取byte[] 指定字节

有一个数据包,格式为1字节int,2字节int,3字节int,11字节byte[],4字节int,1字节int,1字节int,1字节int,1字节int,4字节int,我该怎么接收这个数据包,然后分别把每个单位中的数据取出来?

public abstract int read()() throws IOException
从输入流中读取数据的下一个字节。返回 0 到 255 范围内的 int
字节值。如果因为已经到达流末尾而没有可用的字节,则返回值 -1。在输入数据可用、检测到流末尾或者抛出异常前,此方法一直阻塞。
子类必须提供此方法的一个实现。
还有下面两个方法可选,具体的API说明查找java.io.InputStream的说明。
public int read(byte[] b) throws IOException
public int read(byte[] b,int off, int len) throws IOException
字节转整数时注意高地位。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-21
定义系列的变量,是byte[长度]的。
逐个读到,再转成相应的数据类型,如new String(bytes, 0, 长度)

整数也可以使用 ((int)bytes[0])<<24 + ((int)bytes[1])<<16+ ((int)bytes[2])<<8 +((int)bytes[3]) 这样转换。