2013-04-06 499 views
3

什麼是VB的的Java等價物Buffer.BlockCopyJava相當於Buffer.BlockCopy

for (int i = 0; i < num5; i++) { 
    int[] dst = new int[9]; 
    // Buffer.BlockCopy(bytes, (num2 + &HF8) + (i * 40), dst, 0, 40) 
    byte[] buffer2 = new byte[dst[4] - 1]; 
    // Buffer.BlockCopy(bytes, dst(5), buffer2, 0, buffer2.Length) 
} 

請注意註釋掉的部分...我不知道Java的等價物放在那裏。

回答

5

如果我理解正確,我想你想System.arraycopy()The JavaDoc for it can be found here

一個簡單的例子是:

int[] src = new int[3] {1,2,3}; 
int[] dst = new int[4]; 
System.arraycopy(src, 0, dst, 0, 3); // Copies all of src into dst starting at zero. 
// Dst would be {1,2,3,0} 
+1

謝謝,正是我需要的! – Jire 2013-04-06 01:46:32

+0

@Jire我的回答沒有幫助呢? :p我以爲我只是在SO回答比賽中擊敗託德!我想他確實提供了一個例子... – Muel 2013-04-06 01:47:34

+0

奇怪這是一個'System'方法 – Dori 2014-10-21 14:19:19

3

我不認爲有直接的等值。最接近的匹配是System.arraycopy()。但是,當源數組和目標數組具有不同的基本類型時(例如使用byte []和int []),就不能使用它。

+0

我想我可以在不同的基本類型使用_arraycopy_。我在場景中使用它,它編譯得很好。 – Jire 2013-04-06 01:55:48

+0

@Jire我想你會在運行時得到一個ArrayStoreException,按照javadoc。給它一個鏡頭,讓我們知道! – Muel 2013-04-06 01:59:04

+0

我的確有一個ArrayStoreException! =/ – vinigarcia87 2014-03-07 21:09:56