将ByteArray添加到整数

时间:2015-02-27 08:01:53

标签: java bytearray bytebuffer data-stream

在以下java代码段中,您会看到此行packetLengthMax += bytes.toByteArray()[43]; 我的问题是:这是如何工作的?

byte[] dataBuffer = new byte[265];
int packetLength = 0;
int packetLengthMax = 44;
ByteArrayOutputStream   bytes       = new ByteArrayOutputStream();
DataOutputStream        outMessage  = new DataOutputStream(bytes);
/* Client = Socket*/
DataInputStream         clientIn    = new DataInputStream(Client.getInputStream());
while (packetLength < packetLengthMax) {
    packetLength += clientIn.read(dataBuffer);
    outMessage.write(dataBuffer);           
    if (packetLength >= 43) {
        packetLengthMax += bytes.toByteArray()[43];
    }
}

我的解释: 首先将套接字(Client)传递给代码。然后它完成所有变量的设置。在while循环中,它读取来自套接字的所有数据。然后它还将此数据写入DataOutputStream。 但是在if语句中 - 它将一个字节数组添加到一个整数 它是如何工作的?我不明白这一点。谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

它不是添加整个字节数组,只是在第43位添加字节(即数组中的第44个字节)。