Copy mảng byte trong Java bằng Arrays.copyOfRange()

5/5 - (1 vote)

Khi muốn copy 1 mảng byte trong Java ta dùng hàm này, nó sẽ trả về cho ta 1 mảng byte mới:

public static byte[] copyOfRange(byte[] original, int from, int to) {}

Hàm này cho phép ta copy theo kiểu range này ref [ )

Ví dụ 1:

byte[] pData = new byte[]{1,2,3,4,5};
byte[] new_data = Arrays.copyOfRange(pData, 0, 3);

Ví dụ này copy từ index = 0 đến index = 2 và kết quả là 1 mảng byte [1, 2, 3]

Ví dụ 2:

int offset = 10;
Arrays.copyOfRange(pData, offset, offset + 12);

Ví dụ này cho phép ta copy 1 mảng byte từ index = 10 đến index = 21 từ mảng byte gốc pData. Ý đồ của ta là copy ra 12 bytes.

Dĩ nhiên mảng byte pData phải có kích thước lớn hơn hoặc bằng 23 bytes.


Ngoài ra chúng ta có thể dùng hàm này để copy từ mảng này sang mảng kia theo theo vị trí mong muốn:

System.arraycopy(Object src,  int  srcPos, Object dest, int destPos, int length);

Hàm System.arraycopy giống memcpy trong C/C++ (đọc thêm)

Sự khác nhau chính của Arrays.copyOfRangeSystem.arraycopy là 1 hàm trả về 1 mảng còn hàm kia copy và set trực tiếp.

Các bài viết không xem thì tiếc:

1 Comment

Thảo luận

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Xem thêm
Top các phần mềm được dotrinh bình chọn theo góc…
 
 
 
 
Facetime iPhone

Main Menu