拆分字节数组
是否可以从java中的字节数组中获取特定字节?
我有一个字节数组:
byte[] abc = new byte[512];
我想从这个数组中有3个不同的字节数组。
- 字节 0-127
- 字节 128-255
- 字节256-511。
我试过了,但只有当我给出偏移量为0时,它才有效,对于任何其他值,它会引发异常。abc.read(byte[], offset,length)
IndexOutOfbounds
我做错了什么?
是否可以从java中的字节数组中获取特定字节?
我有一个字节数组:
byte[] abc = new byte[512];
我想从这个数组中有3个不同的字节数组。
我试过了,但只有当我给出偏移量为0时,它才有效,对于任何其他值,它会引发异常。abc.read(byte[], offset,length)
IndexOutOfbounds
我做错了什么?
Arrays.copyOfRange()
在 Java 1.6 中引入。如果你有一个较旧的版本,它在内部使用System.arraycopy(...)
。以下是它的实现方式:
public static <U> U[] copyOfRange(U[] original, int from, int to) {
Class<? extends U[]> newType = (Class<? extends U[]>) original.getClass();
int newLength = to - from;
if (newLength < 0) {
throw new IllegalArgumentException(from + " > " + to);
}
U[] copy = ((Object) newType == (Object)Object[].class)
? (U[]) new Object[newLength]
: (U[]) Array.newInstance(newType.getComponentType(), newLength);
System.arraycopy(original, from, copy, 0,
Math.min(original.length - from, newLength));
return copy;
}