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.copyOfRange và System.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:
- Little Endian Unsinged trong Java
- Lưu ý khi porting C/C++ sang Java
- Thuật toán tìm kiếm tuyến tính (Linear Search)
- Thuật toán tìm kiếm nhị phân (Binary Search)
- Siêu tổng hợp iOS code snippets – Objective C
- Cách dùng AsyncTask trong Android
- Hiểu về cách tổ chức file, bộ nhớ của app Android
- Làm việc với font trong Android
- Gửi dữ liệu đến BLESerial3 bằng Bluetooth LE Android
- Đọc file và ghi file vào bộ nhớ internal Android từ thư mục raw
- Có vấn đề gì nếu dùng hàm đã bị deprecate trong Android
- Công ty SI là gì trong lĩnh vực công nghệ thông tin?
- Chuyển một đối tượng sang Json trong Android
- Copy file vào điện thoại Android từ macOS 100% ez
- Đơn vị báo giá cho thị trường Nhật – 人月, 人日, 人時
1 Comment