我试图理解这段代码
DataInputStream stream =
new DataInputStream(
new ByteArrayInputStream(messageBuffer));
int messageLength = stream.readInt();
char recordType = (char) stream.readByte();
byte padding = stream.readByte();
short numberRecords = stream.readShort();
messageBuffer 被初始化为 new byte[32768],通过 Socket.read() 方法填充。我不明白的是,一旦 messageLength 被初始化为 stream.readInt(),第二个语句将如何工作,即 recordType?
第一条语句不会从字节数组的开头读取一个 int,而下一条语句会从字节数组的开头读取一个字节吗?它如何确切地知道从哪个点读取字节、整数、短裤等?