2012-01-18 125 views
2

我想知道如何正確地引用一個數組中的字節數組的數組字節[]

我有一些原始數據類型,這是說一對夫婦兆大型每個

byte[] data1, data2, data3, data4 ... ,data10; 

data1 = ..(something 2MB big) 
data2 = ..(something 2MB big) 
data3 = ..(something 2MB big) 
. 
. 
data10 = ..(something 2MB big) 

我想安排這10字節[]的到一個數組(這是我的代碼出錯)

private byte[] arrayofdatas[]; 
arrayofdatas[1] = data1; 
arrayofdatas[2] = data2; 
. 
. 
etc. 

我已經試過這一點,但在線路arrayofdatas [1] = DATA1去,我得到空指針異常 請幫我清理代碼,搜索這個確切的問題非常困難。

P.S.我需要數據類型保持爲byte []。請不要將它們轉換爲字符串。

編輯:我需要變量arrayofdatas是一個字段變量。我遇到了問題,因爲我不知道如何將其聲明爲字段。你所有的答案都使它成爲本地的,並使用'新'。另一件事..我已經使'10'成爲我想要的字節[]的任意數量。最終我想這個數組是無界的。是否有添加更多字節[]的方式添加到數組中,以便將來可以有一個arrayofdata [500],而不必在開始時聲明大小?

回答

4
private byte[][] arrayofdatas = new byte[10][]; 

而且你可以在你的方法中使用它們。

arrayofdatas[0] = data1; 
arrayofdatas[1] = data2; 
. 
. 
etc. 

請注意,您應該聲明arrayofdatas作爲類的字段。或者如果你想在方法中聲明它,你應該刪除private修飾符。

+0

如果其10個數據數組,以及開始在arrayofdatas索引1,則應分配11個數據陣列:'新的字節[11] [];' –

+0

耶。我修好了它。 – shift66

1
byte data[][] = new byte[10][]; 

data[0]= ..(something 2MB big) 

0

如果我正確理解你,你需要2維數組。

byte[][] arr2d = new byte[][]; 
byte [] data1, data2, ....; 
arr2d[0] = data1; 
arr2d[1] = data2; 
///.............. 

我希望這可以幫助,雖然你的問題可能表明你的設計不是那麼理想。我建議你在這裏發佈你的任務描述以及你如何設計它。可能傢伙可以推薦你如何改進你的設計。

0

爲什麼不能做這樣的事情:

byte[][] data = new byte[10][]; 
for(int i=0; i<10; i++) 
{ 
    byte[i] = ... //fill your data here; 
} 
3

你的陣列是不是正確分配。如果您需要二維陣列使用:

byte[][] arrayofdatas = new byte[10][]; 
arrayofdatas[1] = data1; 
arrayofdatas[2] = data2; 
. 
. 
etc. 
0

您是否嘗試過多維數組?我記得使用他們的字符串。如果他們這樣做了字符串...他們應該爲任何其他數據類型,只要你分配字節數據:)

這應該有所幫助。

byte[][] arrayofdatas = new byte[10][]; 
arrayofdatas[1] = what you wanted for data1 ..(something 2MB big) 
+0

嘿嘿...我已經看到很多答案了:P – rajugaadu