java - 修剪字节数组末尾的空元素 - Java

标签 java arrays trim

我正在使用 UDP 进行一些网络编程,并尝试将一个大数据包分解为许多较小的数据包,然后通过网络发送它们。一切都运行良好,直到发送最后一个数据包为止。最后一个数据包的问题在于,关联的 byte[] 在末尾有一些尾随空格,因为 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 作为长度。这样末尾就不会出现任何数据填充。

关于java - 修剪字节数组末尾的空元素 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29736273/

相关文章:

java - HtmlUnit - PKIX 路径构建失败 : unable to find valid certification path to requested target

java - ANDROID:在 Java 中访问 CIFS 共享

java - UTF-8 字符串转序数值 : Java equivalent for Python output

c - 初始化一个整数数组

c - 在 C 中释放二维数组的内存

javascript - 如何删除字符串周围的特定字符?

java - 如何让SmartGWT标签的内容不删减空格?

java - 使用 Kotlin 的 RxJava - 如何同步 2 个异步方法,从 Java 重构

php - 是否有适用于部分匹配的 array_keys 版本?

php mysql 仅保留单词和标点符号,没有制表符、换行符等