我有一个接收UDP数据包的数组字节并将其转换为float数组,问题是在每次迭代时它清除数组并写入接收到的数据包,而我想向数组添加新数据包!
我使用此代码:
float[] receive = new float[] {}
如何更改此选项以将接收数据包添加到我的阵列?
答案 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>);
...