このコードスニペットを理解しようとしています
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は、Socket.read()メソッドを介して入力される新しいバイト[32768]として初期化されます。私が理解していないのは、messageLengthがstream.readInt()に初期化されると、2番目の2番目のステートメント、つまりrecordTypeはどのように機能するのでしょうか。
最初のステートメントはバイト配列の先頭からintを読み取り、次のステートメントはバイト配列の先頭からバイトを読み取りませんか?どのポイントからバイト、int、shortなどを読み取るかをどの程度正確に知ることができますか?