2011-09-20 77 views
8

在Java中,如何獲取byte []數組並從數組中移除前16個字節?我知道我可能必須通過將數組複製到一個新數組中來完成此操作。任何例子或幫助將不勝感激。刪除字節數組中的前16個字節

+0

剛剛從'的ByteArray [2]''要採取的ByteArray [byteArray.length-1]' –

+3

你有沒有注意你的頭銜和問題之間的不一致?它是16位還是16字節? –

回答

33

有已經在Java庫,用於此的方法:

Arrays.copyOfRange(byte[] original, int from, int to) 
+0

http://download.oracle.com/javase/6/docs/api/java/util/Arrays.html#copyOfRange%28byte[],%20int,%20int%29 – Nayuki

2
byte[] a; 

... 

if(a.length > 1) { 
    byte[] newA = new byte[a.length-2]; 
    for(int i = 2; i < a.length; ++i) 
     newA[i-2]=a[i]; 
} 
0
void remove(byte[] b) 
{ 
    for(i=16;i<b.length;i++) 
    { 
     a[i-16]=b[i]; 
     Process... arrays 
    } 
} 
+0

你應該解釋你的答案。 SO的存在是爲了教育,而不僅僅是回答問題 – Machavity

+0

@Machavity我認爲如果你跟蹤'我'的價值,沒有更好的解釋。 'a'是現有陣列'b'中的新陣列。當你想消除前16個元素時,從這個位置(i = 16)開始寫新數組的元素,並且[i-16]是新數組的第一個字節,因此複製到舊的最後一個值字節數組。 –