2012-06-08 147 views
0

我有一個接收UDP數據包的數組的字節,我將它轉換爲浮點數組,問題是在每次迭代中清除數組並寫入接收到的數據包,同時我想添加新的數據包到數組!將udp數據保存到數組中

我用這個代碼:

float[] receive = new float[] {} 

我應該如何改變這種增加接收包到我的陣列?

+1

我們需要看到更多的代碼確切地知道是什麼,你的陣列獲取每次迭代清理的原因。 –

回答

1

我假設每次接收到UDP數據包時,都會將數據放入該數組中,這就解釋了爲什麼每次迭代都會被擦除。 使用ByteArrayOutputStream保存接收的字節

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

一旦這樣做,你可以通過執行獲得所有接收的字節:

byte[] bytes = out.toByteArray(); 

然後做float轉換

0

數組是固定大小的數據結構。您應該使用java.util.ArrayList來代替。如果拳擊開銷不可接受,您可以編寫自己的專用於整數的自定義ArrayList,或使用similar available solutions之一。

0

我會猜測,您發佈的帖子:

float [] receive = new float [] {}

位於循環內部。 所以每個循環receive變量都會得到一個新的空float數組。

您應該將receive的聲明放在循環之外。 而missingfaktor是正確的,你最好使用ArrayList

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