我有一个接收 UDP 数据包的数组字节并将其转换为浮点数组,问题是在每次迭代中它都会清除数组并写入那里接收到的数据包,而我想将新数据包添加到数组中!
我使用这段代码:
float[] receive = new float[] {}
我应该如何更改它以将接收数据包添加到我的阵列?
我假设每次收到 UDP 数据包时,您都将数据放入该数组中,这解释了为什么它在每次迭代时都会被擦除。使用 aByteArrayOutputStream
保存接收到的字节
ByteArrayOutputStream out = new ByteArrayOutputStream();
while (receiving) {
out.write(received_data, 0, received_data_size);
}
完成后,您可以通过执行以下操作获取所有接收到的字节:
byte[] bytes = out.toByteArray();
然后进行float
转换
数组是固定大小的数据结构。你应该java.util.ArrayList
改用。如果装箱开销不可接受,您可以编写自己ArrayList
的整数专用定制,或使用类似的可用解决方案之一。
我猜你发布的那一行:
浮动 [] 接收 = 新浮动 [] {}
在循环内。所以每个循环receive
变量都会得到一个新的空float
数组。
您应该将声明放在receive
循环之外。而且missingfaktor是对的,你最好使用ArrayList
ArrayList<Float> receive;
...
receive.add(<your data>);
...