将udp数据保存到数组中

时间:2012-06-08 13:44:33

标签: java android arrays udp

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

我使用此代码:

float[] receive = new float[] {}

如何更改此选项以将接收数据包添加到我的阵列?

3 个答案:

答案 0 :(得分:1)

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

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

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

byte[] bytes = out.toByteArray(); 

然后进行float转化

答案 1 :(得分:0)

数组是固定大小的数据结构。您应该使用java.util.ArrayList代替。如果拳击开销不可接受,您可以编写专用于整数的自定义ArrayList,或使用similar available solutions之一。

答案 2 :(得分:0)

我猜你发布的那条线:

float [] receive = new float [] {}

在循环内。 因此,receive变量的每个循环都将获得一个新的空float数组。

您应该将receive的声明置于循环之外。 而missfaktor是对的,你最好使用ArrayList

ArrayList<Float> receive;
...
receive.add(<your data>);
...