0

我有一个接收 UDP 数据包的数组字节并将其转换为浮点数组,问题是在每次迭代中它都会清除数组并写入那里接收到的数据包,而我想将新数据包添加到数组中!

我使用这段代码:

float[] receive = new float[] {}

我应该如何更改它以将接收数据包添加到我的阵列?

4

3 回答 3

1

我假设每次收到 UDP 数据包时,您都将数据放入该数组中,这解释了为什么它在每次迭代时都会被擦除。使用 aByteArrayOutputStream保存接收到的字节

ByteArrayOutputStream out = new ByteArrayOutputStream();
while (receiving) {
    out.write(received_data, 0, received_data_size);
}

完成后,您可以通过执行以下操作获取所有接收到的字节:

byte[] bytes = out.toByteArray(); 

然后进行float转换

于 2012-06-08T13:51:30.740 回答
0

数组是固定大小的数据结构。你应该java.util.ArrayList改用。如果装箱开销不可接受,您可以编写自己ArrayList的整数专用定制,或使用类似的可用解决方案之一。

于 2012-06-08T13:49:58.223 回答
0

我猜你发布的那一行:

浮动 [] 接收 = 新浮动 [] {}

在循环内。所以每个循环receive变量都会得到一个新的空float数组。

您应该将声明放在receive循环之外。而且missingfaktor是对的,你最好使用ArrayList

ArrayList<Float> receive;
...
receive.add(<your data>);
...
于 2012-06-08T13:52:31.460 回答