修剪字节数组末尾的空元素 - Java
Trimming empty elements off end of byte array - Java
我正在使用 UDP 进行一些网络编程,并试图将一个大数据包分解成许多较小的数据包,然后通过网络发送它们。在发送最后一个数据包之前,一切都很好。最后一个数据包的问题在于,关联的 byte[] 末尾有一些尾随 space,因为 byte[] 始终为 1024 字节,但循环仅在仍有文件数据时才填充数组被发送。在将数组放入要通过网络发送的 DatagramPacket 之前删除 byte[] 的空元素的最佳方法是什么?
while(count < fileData.length) {
for(int i=0; i<smallBuffSize; i++){
System.out.println(count);
System.out.println(fileData.length);
if(count < fileData.length){
data[i] = fileData[count];
count++;
}
}
DatagramPacket dataPacket = new DatagramPacket(data, data.length, serverAddress, 5000);
socket2.send(dataPacket);
}
当没有这么多数据时,不要使用 data.length
作为长度,我建议只提供实际长度。这样最后就不会有数据的任何填充。
我正在使用 UDP 进行一些网络编程,并试图将一个大数据包分解成许多较小的数据包,然后通过网络发送它们。在发送最后一个数据包之前,一切都很好。最后一个数据包的问题在于,关联的 byte[] 末尾有一些尾随 space,因为 byte[] 始终为 1024 字节,但循环仅在仍有文件数据时才填充数组被发送。在将数组放入要通过网络发送的 DatagramPacket 之前删除 byte[] 的空元素的最佳方法是什么?
while(count < fileData.length) {
for(int i=0; i<smallBuffSize; i++){
System.out.println(count);
System.out.println(fileData.length);
if(count < fileData.length){
data[i] = fileData[count];
count++;
}
}
DatagramPacket dataPacket = new DatagramPacket(data, data.length, serverAddress, 5000);
socket2.send(dataPacket);
}
当没有这么多数据时,不要使用 data.length
作为长度,我建议只提供实际长度。这样最后就不会有数据的任何填充。